                  FreeBSD 5.X!B6.X +-`"-L-DEGYu-aP:DEG

  FreeBSD CURaaYENopue

   Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
   2003, 2004, 2005, 2006, 2007, 2008 FreeBSD CURaaYENopue

   ^3oYEN-:CURaaYENoNOTO FreeBSD 5.X CURI 6.X
   -a-o+-`"-L-DEGYu-aP:DEG!C
   DEG-L-<<D|^3-SS:OYEN[uu!AS:_<<h^3o"C,P:uYENO/^3-L- 3/4AYENI(c)o
   FreeBSD 5.0 CURIYENH<<a-a-o-a(c)YEN>>!C
   (|p-aG+-o/YENO/CUR-o(R)eCURCUR|^3 <XXX> <<hNOTO(c)|YEN
   1/4S:^1|"CURCURA:P:-a-o^3!YEN-:!C)
   |p-aG+-z^1i"oS:UYEN>>CURaaYENo/A 1/2A:P:pue-a-oP:i|ae|^3?^3
   1/2`i-a-o,U:!A 1/2D-+-H e-mail "`i FreeBSD documentation project
   P:l>> 1/4 1/2 * 3/4A!C|^1YEN~!AAH(R)EYENi+-q FreeBSD -oo-,
   (R)^3"`i^3oYEN-:CURaaYENo-a-o^3I.s-a(c)YEN>>!C CUR]YENiYENHS:QYENI
   HTTP "OCURU,u:CUR@YEN-:AeCURj-a-o HTML CURaaYENo!A(c)INOTO,gYENN
   FreeBSD FTP -, CURU,u:-ACURaa|r!BPostScript(R)!B(c)I PDF
   -a(c)YEN>>-a-oAE(R) *!C +-zCUR]YENiYENH|b^3o,I"IYENI .j'M,e(R)AE
   -a-oYEN\-`a!C

   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.

     Important: 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.

   FreeBSD NOTO FreeBSDDEGo-a-:.|-a-ouuYENUDEGO 1/4D-

   3Com (c)M HomeConnect NOTO 3Com Corporation -a-ouuYENUDEGO 1/4D-!C

   Adobe, Acrobat, Acrobat Reader, YENHCURI PostScript NOTO Adobe
   Systems Incorporated |bNOTu:DEGe(c)M/(c)I"a:YENLDEGe(R)a-a-oDEGO
   1/4D-(c)IuuYENUDEGO 1/4D-!C

   Sound Blaster NOTO Creative Technology Ltd.
   |bNOTu:DEGe(c)M/(c)I"a:YENLDEGe(R)a-a-ouuYENUDEGO 1/4D-!C

   CVSup NOTO John D. Polstra -a-ouuYENUDEGO 1/4D-!C

   IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, (c)M
   ThinkPad NOTO DEGe>>UDEGOYENI 3/4-: 3/4^1CUR
   1/2YENq|bNOTu:DEGe(c)M"a:YENLDEGe(R)a-a-ouuYENUDEGO 1/4D-(c)IDEGO
   1/4D-!C

   IEEE, POSIX, (c)M 802 NOTO Institute of Electrical and Electronics
   Engineers, Inc. |bNOTu:DEGe-a-ouuYENUDEGO 1/4D-!C

   Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, (c)M
   Xeon NOTO Intel Corporation CURI"a:CURACURa:
   3/4-:-oc|bNOTu:DEGe(c)M"a:YENLDEGe(R)a-a-oDEGO 1/4D-(c)IuuYENUDEGO
   1/4D-!C

   Iomega, Zip, (c)M Jaz NOTO Iomega Corporation
   |bNOTu:DEGe(c)M/(c)I"a:YENLDEGe(R)a-a-oDEGO 1/4D-(c)IuuYENUDEGO
   1/4D-!C

   Linux NOTO Linus Torvalds -a-ouuYENUDEGO 1/4D-!C

   Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media,
   (c)M Windows NT NOTO Microsoft Corporation
   |bNOTu:DEGe(c)M/(c)I"a:YENLDEGe(R)a-a-oDEGO 1/4D-(c)IuuYENUDEGO
   1/4D-!C

   MIPS (c)M R4000 NOTO MIPS Technologies, Inc.
   |bNOTu:DEGeYENHCURI"a:YENLDEGe(R)a-a-ouuYENUDEGO 1/4D-!C

   Netscape YENHCURI Netscape Navigator NOTO Netscape Communications
   Corporation |bNOTu:DEGe(c)M"a:YENLDEGe(R)a-a-ouuYENUDEGO 1/4D-!C

   Motif, OSF/1, (c)M UNIX NOTO The Open Group
   |bNOTu:DEGe(c)M"a:YENLDEGe(R)a-a-ouuYENUDEGO 1/4D-!F IT DialTone
   (c)M The Open Group NOTO"a:DEGO 1/4D-!C

   Oracle NOTO Oracle Corporation -a-ouuYENUDEGO 1/4D-!C

   Silicon Graphics, SGI, (c)M OpenGL NOTO Silicon Graphics, Inc.
   |bNOTu:DEGe(c)M/(c)I"a:YENLDEGe(R)a-a-ouuYENUDEGO 1/4D-!C

   Sparc, Sparc64, SPARCEngine, YENHCURI UltraSPARC NOTO SPARC
   International, Inc |bNOTu:DEGe(c)M"a:YENLDEGe(R)a-a-oDEGO 1/4D-!C
   NOTDEG Sun Microsystems, Inc. (c)OP:}uo-a-oNOT[-oc!AYEN]S:t SPARC
   DEGO 1/4D--a-o^2-L-<<~!C

   Sun, Sun Microsystems, Java, Java Virtual Machine, JavaServer
   Pages, JDK, JSP, JVM, Netra, Solaris, StarOffice, Sun Blade, Sun
   Enterprise, Sun Fire, SunOS, (c)M Ultra NOTO Sun Microsystems,
   Inc. |bNOTu:DEGe(c)M"a:YENLDEGe(R)a-a-oDEGO 1/4D-(c)IuuYENUDEGO
   1/4D-!C

   U.S. Robotics (c)M Sportster NOTO U.S. Robotics Corporation
   -a-ouuYENUDEGO 1/4D-!C

   XFree86 NOTO The XFree86 Project, Inc -a-oDEGO 1/4D-!C.

   ^3\|h>>s^3yDEGO(c)M,g 3/4PDEGO"IYENICUR@"C,-oUNOTDEGDEGO
   1/4D--a-o^1I(R) *(c)ICURaa|r^3]p"O^1u:AAa|UCURv-a-o^2-L-<<~!C
   YEN>>CURaaCURCURYENX^2{-a-o^2^3|hDEGO 1/4D-!AYENHCURI FreeBSD
   Project YEN>>" 1/4s(c)OCURH-a 3/4-a-oDEGO 1/4D-!A<<a+-+-NYENH
   '(TM)' (c)I '(R)' ^2AA,^1"O 1/4D-uu!C

     --------------------------------------------------------------

   Table of Contents

   1 <<e"YEN!BCUR@-eDEGYAD

   2 CURaaYENo>>PS:TH^3NCURa:'(c)

   3 |w,E

   4 uwAAeCURa:'(c)CURe+-

                4.1 CUR@-eDEGYAD

                4.2 uwAAeNOT[-ocCURI CPU

                4.3 uw-oD-!B-oI+-a 3/4-:YENHCURIYENu-oD-!BDVD!B?N?y
                3/4-:

                4.4 Aa: 1/2L!B.AE^1<<

                4.5 -oo,o,o serial ^3]^3AE

                4.6 u(R)A:YENd

                4.7 "a:YENL(c)C,^2S:DEGYAD(ACPI!B<<P:} 3/4-:<<a+-
                3/4CURF..uYEN)

   5 +-`"-L-DEGYAD,N"M

   6 DEGO.~^3nAAe

   7 CUR@-eA^3YENIu{|!

   8 kernel ^3](c)w

   9 uw-oD-!BAE(R) *"t^2I!BBoot Loader

   10 "t^2I-oTH^2z

   11 X Window System CURI Virtual Consoles

   12 Networking

   13 "t^2I|wYENth 1/2g

   14 PPP

   15 Serial Communications

   16 "a:YEN||U|!|U 1/4E-a-oDEGYAD

   17 FreeBSD S:N--o,U:P:DEG

   18 P:iP:YENYENDAD

   19 .PAA

   20 Ports and Packages +-`"-L-DEGYAD

   Bibliography

   List of Tables

   3-1. AE(R) *CURjCURp-a-o^3ICURj"i

   12-1. Network cards based on the DEC PCI chipset

   List of Examples

   11-1. |b XFree86 3.3.x "t|C-a-o XF86Config ^3](c)wAE-a-o
   !S:Pointer!" DEGIP:oCURCUR!AYENH moused S:@A`a'<< -a-o-ou
   1/2u:^1<<-a-o^3](c)w 1/2d"O

   11-2. |b XFree86 4.x "t|C-a-o XF86Config ^3](c)wAE-a-o
   !S:InputDevice!" DEGIP:oCURCUR!AYENH X Server S:@A`a'<< -a-o-ou
   1/2u:^1<<-a-o^3](c)w 1/2d"O

   11-3. |b !S:.emacs!" CURCUR!A^3](c)w-ou 1/2u:^1<<-a-o`iYENI
   P:+--ouDEGECURa:'(c) 1/2d"O

   11-4. |b XF86Config ^3](c)wAE-a-o !S:Pointer!" DEGIP:oCURCUR!AYENH
   X Server S:@A`a'<<-a-o-ou 1/2u:^1<<-a-o^3](c)w 1/2d"O

   11-5. |b XFree86 4.x "t|C-a-o XF86Config ^3](c)wAE-a-o
   !S:InputDevice!" DEGIP:oCURCUR!AYENH X Server S:@A`a'<< -a-o-ou
   1/2u:^1<<-a-o^3](c)w 1/2d"O

   11-6. |b !S:.emacs!" CURCUR!A^3](c)w-ou 1/2u:^1<<-a-o`iYENI
   P:+--ouDEGECURa:'(c) 1/2d"O

   11-7. Imwheel -a-o Emacs ^3](c)w

   11-8. Imwheel -a-o Xemacs ^3](c)w

     --------------------------------------------------------------

                    Chapter 1 <<e"YEN!BCUR@-eDEGYAD

   Ying-Chieh Liao

   AAw-ai"IYENI FreeBSD 4.X-6.X FAQ!

   ,o"a:YENL Usenet CURW-a-o FAQ CUR@
   1/4E!A^3oYEN-:CURaaYENo^2[>>\CURF|^3Ao: FreeBSD
   ^3o(R)MS:@.~"t^2I^3I+-`^3QDEGY"`i-a-oDEGYAD
   (.iuMYEN]NOTACURF|^u-a!I)!C
   Ao:uM>>!S:UIYEN>>"O-a-oYENO/-a-oNOTONOTDEGCURF'iCURO:-oo,oAW
   1/4e-a-o(R)o:P:O!A YENHCURIA *S:K|P
   1/4E-a-oDEGYADCUR@|AYENX^2{!A|y"AE^1eCURW FAQ CURw^3QCUR
   1/2>>{NOTDEGNOTOE+-o 3/4\AA-a-a-oCURaaYENo,e. 1/2!C

   S:UICURw,g 3/4"YENi-`a|a"I^3oYEN-: FAQ S:oA
   *'ICURF!C|p-aG+-z^1i|p|oS:iu 1/2!B P:i"BCURe+-|^3YENo|o<<O/A:^3!A
   1/2D-AH(R)E+-H^1qCURlP:lYENou^1 FreeBSD documentation project
   P:l>> 1/4 1/2 * 3/4A!C

   1.1. CURDEG>>oNOTO FreeBSD!H

   1.2. uo(R)i FreeBSD -a-oYENO/-a-oNOTOCURDEG>>o!H

   1.3. FreeBSD -a(c)AAv|^3YENo|o"iP:U:!H

   1.4. FreeBSD YENiYENH"uYENNS:U^2{|b|bYENI-a-oS:@.~"t^2IP:U:!H

   1.5. NOTDEGCURDEG>>onYENsDEGu FreeBSD!H

   1.6. FreeBSD CURI NetBSD, OpenBSD YENHCURI"a:YENL open source BSD
   S:@.~"t^2ICURS:P:!|^3|oCUR-L-|PCURS:^3B(c)O!H

   1.7. ^3I.s-a(c)-a-o FreeBSD NOTO"-oCUR@-a(c)!H

   1.8. CURDEG>>oNOTO FreeBSD-CURRENT!H

   1.9. CURDEG>>oNOTO FreeBSD-STABLE!H

   1.10. FreeBSD -a(c)YEN>>(c)R|W`i<<hNOTOCURDEG>>o(c)O!H

   1.11. "C|,.s-a-o FreeBSD +-N(c)oCURDEG>>o(R)EO+-AYENX!H

   1.12.  1/2O:t^3d FreeBSD -a-ouo(R)i!H

   1.13. S:Un|p|o"u+-o FreeBSD!H

   1.14. S:Un|p|oYENhNOTd,ss!B'-L-YENaeDEGYAD|^^3o/(Problem
   Report!AA^2-oUPR),e(R)AE(R)w(c)O!H

   1.15. AU|^3"a:YENL|^3Ao: FreeBSD -a-o,eDEGTP:U:!H

   1.1. CURDEG>>oNOTO FreeBSD!H

   A^2^3ae|a"O>>!!AFreeBSD NOTOCUR@(R)MYENiYENH|b Alpha/AXP, AMD64
   CURI Intel(R) EM64T, i386(TM) IA-64, PC-98, UltraSPARC(R)
   CURWDEGo|ae-a-o UN*X-like S:@.~"t^2I!AYEN|NOTO(R)U 3/4U U.C.
   Berkeley (c)OP:}uoYENX"O-a-o !S:4.4BSD-Lite!"!A"AYEN[CURWCURF^3\|h
   !S:4.4BSD-Lite2!" -a-o
   1/4W+-jYEN\-`a!CYEN||P(R)ECUR]P:!+-u"IYENICURF U.C. Berkeley
   (c)OP:}uoYENX"O"AYENN William Jolitz ^2 3/4'O"`i i386 -a-o
   !S:Net/2!"!ACUR]'NNOTO !S:386BSD!"!A CUR-L-^1L^2{|b 386BSD
   -a-ou{|! 1/2XYENu^3NCURU.YENCURO: 1/4AEAU-d|s|b FreeBSD CURCUR!C
   +-zYENiYENH|b FreeBSD -oP: S:a:"`i FreeBSD
   YENHCURIYEN|YENiYENHADEG+-zDEGu"C,CURDEG>>o-a-oNOTUAo:,eDEGT!C

   FreeBSD CURw^3Q 1/4s-ax|a^3QYEN@NOTE|U|a-a-oCUR
   1/2YENq|ae,^1!BISP!BNOTa"sCURHu!B ^1q,-L-+-M(R)a!B
   3/4C,YENI!AYENHCURI(R)a(R)xYENICURa(c)O"IYENI!AYENI|bCURuS:@!B+-D-"|YENHCURI(R)T
   1/4O:CURW!C

   |p-aG.QNOTYAo:(c)o FreeBSD S:o^2`CURJ-a-o,e(R)AE!A 1/2D-NOTY
   FreeBSD "IYENICURaYENU !C

   1.2. uo(R)i FreeBSD -a-oYENO/-a-oNOTOCURDEG>>o!H

   FreeBSD
   pue-a-oYENO/-a-oNOTO'-L-"NYENiYENHYENo.N"IYENIYENB"S|^3"i-a-o^3nAAe!C
   S:UI|bu{|! 1/2X (YENHCURIp+-THYEN>>")
   CURWYENIYENXCURFCURjP:qCURss|aa!A
   .iuMCUR-L-.|CURP:.N"OAI-a-:?uCURW-a-o|^oX!ACUR-L-^1LS:UIu'^1iCUR-L-.||p|^1DEGi<<u!C
   S:UINOTU<<HS:UI-on-a-o!S:YENoDEGE!" 'NNOTO'-L-"Nu{|!
   1/2Xu^1"CCUR@O"IYENI-aI!A
   CUR-L--oTHYENLIYEN'-oaYENI"O.F^1A!F^3o>>oCUR@"O!A ^3o"C,u{|!
   1/2XCUR~-`a^3QYENI|b^3I|h|aCURe!ACUR]CUR~-`auo'S:YEN|I^3ICURj-a-o(R)A:-q!C
   S:UINOTU<<H^3o'NNOTO|UYENN^3nAAe^3IDEGoYEN>>-a-oYENO/
   1/4D-CURS:CUR@!A |OYENBS:UI.|-oEYENthCUROYENhCURa:<<uYEN|!C

   |bS:UI source tree CURCUR|^3^3!YEN-:-a-ou{|! 1/2XNOTO+-A:YENI(c)O?
   *-a-o GPL (c)INOTO LGPL -a(c)AAv<<AAS:i!A
   Ao:uM^3o"C,-a(c)AAv<<AAS:iNOTOYENI"O<<O>>U|O<<D"i"IYENI-aI-a-oAAvS:Q!A
   ^2|^3-oNOTOCUR-L-"-o>>o|UYENNCURF"C,!C YENN(c)o^3o"C, GPL
   -a-o^3nAAe|bDEGO.~"IYENICURW.|CURTHDEG_<<D+-`
   1/2AEAo/-a-o-a(c)AAvDEGYAD!A |]|^1YENun|^3
   3/4-:.|!AS:UI.|-oEP:qYENH+-A:YENICURn,u 1/4eAP-a-o FreeBSD
   -a(c)AAv-a-o^3nAAe"O"uYENN^3o"C, GPL -a(c)AAv<<AAS:i-a-o^3nAAe!C

   1.3. FreeBSD -a(c)AAv|^3YENo|o"iP:U:!H

   |^3-a-o!C|yNOTO^3o"ACUR-L-NOTO"iS:A<<c,>>oYENh"IYENI^3o"C,u{|!
   1/2X!A|ONOTOS:A<<c,>>oNOTY<<Y FreeBSD
   ^3oOpue!C|p-aGS:A|^3-a(c)AAvuJ 1/4{-g-a-o,U:!A 1/2D- 3/4\AA-a
   -a(c)AAvYEN>>CURaa!CA^2^3ae|a"O>>!!A^3oYEN-:-a(c)AAv-a-o<<AIYENiYENH+-o/|C|pCURU!C

     * 1/2D-CURAA<<AA-oUNOTO+-z 1/4gCURF^3oOu{|!!C

     * |p-aGYEN|YENXDEGYADCURF!ACUR-L-n+-+-S:iS:UI!C

   1.4. FreeBSD YENiYENH"uYENNS:U^2{|b|bYENI-a-oS:@.~"t^2IP:U:!H

   ^1iCURj^3!YEN-:-a-oCURH"O>>!NOTO^3o 1/4E"S?u!A
   |y"AE^1eCURW^3oDEGYAD"A"S|^3^3o>>o|n|^u-a!C

   CURj^3!YEN-:-a-oCURH"ACUR-L-NOTO-uYEN?|b"IYENICUR@OS:@.~"t^2I!C
   YENLI"IYENI-a-oNOTOA^3YENIu{|!!F|O"-o"C,A^3YENIu{|!CUR~NOTO-uYEN?YENI"`iS:@.~"t^2I-a-o-aF|e!C
   FreeBSD NOTO^3]pYENI"O'-L-"NCUR@O+-jP:'YENBYEN\-`aS:^1
   3/4a-a-oS:@.~Ao^1Ou^1A^3YENIu{|!"ODEGo|ae!C
   YEN|CURa:'(c)CURF|h-oO/AsA:y 3/4^1!A?`iCUR
   1/2<<C,(R)MYENo^3nAAe!A^1qCURlP:lYENo 3/4\AA-a^3nAAe!AA,^1Iu{|!!A
   u{|!^3]pAo^1O!A-oo,o|o/-aA
   3/4^1^3nAAe!AYENHCURI'XYENG(c)O|^3S:A.Qn-a-o-aF|e!C
   CURj^3!YEN-:-a-ou{|!^3-L-YENiYENH 3/4a Ports Collection
   "O-oTH^2z!C

   |yNOTO|p-aGS:A.Qn"IYENI-a-oA^3YENIu{|!YENu-`a|bNOTYO-S(c)w-a-oS:@.~"t^2ICURW+-DEGo|ae
   -a-o,U:!AS:A'NCUR-L--`a>>'(c)o:|aS:aYEN|'<<+-
   1/4!A(c)I-aI<<u:+-ae|b FreeBSD CURW|^3<<U:NOTU|u:-a-oA^3YENI
   u{|!CUR~|^3 3/4-:.|!C|p-aGS:A.Qn-a-oNOTOCUR@O+-jDEG.-a-o?`iCUR
   1/2<<C,(c)INOTO-oo,o|o/-aA 3/4^1!A(c)INOTO
   CUR@^3!A(c)w-a-oCURuS:@-,!A(c)INOTO.Q|bCUR-L-^3QCURCURA_-a-oAo^1OCURUCURuS:@-a-o,U:!AFreeBSD
   uL-oA NOTO+-z-a-o^3I"I?i
   3/4U:!CYEN@NOTE|U|a|^3<<U:|h"IYENI-aI!AYEN]NOTA-a`i
   3/4C,(c)I,e^2`-a-o UNIX(R) -oTH^2z CURHu^3-L-?iYENI FreeBSD
   .iYENLIDEGssCUR@-a-o(R)`aCURWS:@.~"t^2I!C

   |p-aGS:ANOTO+-q"a:YENL-a-o UNIX Ao^1OA`a'<<"`i FreeBSD -a-o,U:!A
   DEGoYEN>>CURWNOTOCURj|PCURp^2S:-a-o!C|yNOTO|p-aGS:ACURS:<<eYENI-a-oNOTO^1IS:INOTE+--a-oS:@.~"t^2I!A
   "O|p>>!NOTO Windows(R) (c)INOTOCURn,uYENj|N-a-o Mac OS(R)
   -a-o,U:!A YENi-`a'Nn|h-aaCUR@AI(R)EP:!"O 3/4C,^2ss<<c,>>oYENI UNIX
   -a-oCURe|!"ODEGu!C S:AYENiYENH+-q^3oYEN-: FAQ (c)M FreeBSD
   "IYENICURaYENU "OCURJ-au!C

   1.5. NOTDEGCURDEG>>onYENsDEGu FreeBSD!H

   * +-zYENiYENHS:KP:O"IYENIYEN|!AS:Y"INOTOYENI(c)oDEGO.~YENI^3~!C

   * 3/4aO FreeBSD S:@.~"t^2IS:^1
     3/4a-a-o`i(c)lu{|!^3-L-YENiYENHS:KP:O"u+-o!A|OYENBCUR-L-
     -oTHNOTO|b"IYENI!A'^2S:G(c)INOTO
     3/4a|XP:i"a:YENLu{|!uYEN|UCURe+-CUR]YENu"u:"`i^3ICURp-a-o "i
     (CUR-L- 1/2 *NOTOS:_YENI(c)oDEGO.~YENI^3~)!C

   * YENo|oCURH^3-L-YENiYENH|UYENN|aS:aYENL^1i"t^2I-a-oS:i"}(c)I?u>>~
     *YEN?-a-ou{|! 1/2XYEN[CURJ source tree CURS:CURCUR
     (.iuMn^2AA|X'XOYENy"M+-o/YENo)!C

   -SS:OE+-o-a`.N-a-oNOTO^3o,I-a-o !S:free!"
   YENX^2{CURF"a|,!A|OYENBYEN|I -a-o.N<<a:NOTOCUR-L-CUR@
   1/4E-a-o!GCUR@-oO/YENN-ai !S:S:KP:O!"!AYENtCUR@-oO/YENN-ai
   !S:|UYENN!"!C+-zYENiYENH(R)^3 FreeBSD
   YENhDEGuYENo|o+-z.QnDEGu-a-o"AE!ADEG-L-CURFCUR@"C,
   "OYEN~!A"O|p+-z<<AA-oU FreeBSD NOTO+-z 1/4g-a-o!C

   1.6. FreeBSD CURI NetBSD, OpenBSD YENHCURI"a:YENL open source BSD
   S:@.~"t^2ICURS:P:!|^3|oCUR-L-|PCURS:^3B(c)O!H

   James Howard |b DaemonNews CURW+- 1/4gCURF The BSD Family Tree
   -a-oCURaaYENo!A,I+->>!(c)uCURF^3o"C, 3/4uYENv^2W. 1/2CURI^3o"C,
   *BSD (R)a+-UpueCURS:P:!-a-o(R)t^2S:!C

   1.7. ^3I.s-a(c)-a-o FreeBSD NOTO"-oCUR@-a(c)!H

   'N FreeBSD YENO/<<e-a-ouo(R)i|O"YEN!A|^3"aOYENDnuo(R)iCURACURa:!G
   YENN 5-STABLE (c)Ouo|ae(release)-a-o 5.X "t|C!B YENN 6-STABLE
   (c)Ouo|ae(release)-a-o 6.X "t|C^3o"aOCURACURa:!C

   |b 5.3 release CURS:<<e!A4.X "t|CCUR'A:Y -STABLE CURACURa:!C |U+-q
   5.3 P:}(c)l!A5.X "t|CP:}(c)l^3W^1-o.s-a-o -STABLE
   CURACURa:uo(R)i<<AI!A |O 4.X
   +-NYENuuU<<|b<<CURjDEGYADCURW(CURn|p!G-o|NOT} *,E!B|wYENth-ouAA@)
   YENHCURI(c)O? *-a-o "extended support"
   !ACUR-L-|A.||^3.s-a-oNOTd--}(c)Euo(R)i!CYENtCUR@CURe+-!A5-STABLE
   CURACURa:Ao:uMCUR'+-NA:~A:ouo|ae!A|yNOTOYENN(c)oYEN|YENuNOTO
   !S:legacy!" ^1L'c,'ACURACURa:!A (c)OYENHCURj|h
   1/4AEYENDCURO^3-L-CURwA`a^2 3/4"`i 6-STABLE A:~A:oP:}uo!C

   (c)o August 2012 (c)Ouo|ae-a-o 9.1 -a(c)NOTOYENO/<<e^3I.s-a-o
   6-STABLE CURACURa:!F |O(c)o April 2012 (c)Ouo|ae-a-o 8.3
   -a(c)<<hNOTOYENO/<<e^3I.s-a-o 5-STABLE CURACURa:!C

   A^2^3ae|a"O>>!!A-STABLE -a-oYENDnP:D"D^1iP:HNOTO^1i(c)o
   A(c)w(c)ECURIS:CAAU:^2S:(c)E-a-o>>Y"D>>.^3O^1L^1i^3I.s -CURRENT
   snapshot CURCUR-SS:O.sYEN\-`a-a-o>>Y"D!A"O|p ISP (c)ICUR
   1/2YENq|ae,^1-a-o"IYENI-aI!C^3o"aO branch
   ^3-L-|^3YENi-`a.|^2-L-YENI release -a(c)!A|yYENu|^3.iS:A-`a+-u"u:
   -CURRENT >>.CURn -STABLE (R)e(c)o:S:oDEGE^3oCUR@AI!ACUR~A^3,OYENI
   -CURRENT!C

   Release -a(c)"C'XOCUReCUR~.|uo
   |aeCUR@|,!CAo:uM|p|^1!A|^3<<U:|hCURH(c)M FreeBSD `i(c)l
   1/2X|P"BS:o.s!],O"-L- FreeBSD-CURRENT (c)M FreeBSD-STABLE
   -a-oNOTUAo:DEGYAD)!A|y|]NOTDEG`i(c)l 1/2X NOTOCUR@-a
   1/2CUR-L-A_|a|bAAU:DEGE-a-o!A(c)OYENH|p-aGn^3o>>oDEGu-a-o,U:+-on-aaCURWS:o|h-a-o-oe
   CURO!C

   "a:YENLS:o|hNOTUAo: FreeBSD uo|ae+-!^3o/!AYENiYENN FreeBSD
   -oo-,CURW-a-o Release Engineering +-o-a 3/4!C

   1.8. CURDEG>>oNOTO FreeBSD-CURRENT!H

   FreeBSD-CURRENT
   <<u:-a-oNOTOYEN?|buo(R)iCURCUR-a-oS:@.~"t^2I-a(c)YEN>>!A YEN|^2
   *+-N|b 3/4A.i-a-o(R)E 3/4-:|"NOTDEG FreeBSD-STABLE CURACURa:!C
   YEN|^1e|bNOTOYENu 3/4A|Xu^1"t^2Iuo(R)i-aIYENHCURI|^3
   1/4YCURO-a-o.~ 3/4l.R|n-aI"IYENI!C |p-aG.Qn+-o"`i|^3Ao:|p|o"IYENI
   -CURRENT -a-o^2`CURJ,eDEGT!A 1/2D-DEGN|O "IYENICURaYENU -a-o
   NOTUAo:^3!YEN-: !C

   |p-aG+-z^1iS:@.~"t^2IYEN>>""ACUR-L-NOTO<<U:
   1/4o+-x!A(c)INOTO+-z"S?`i-akCURA?e+-z^1J"`i-a-oDEGY
   ADNOTO-u-a-ouoYENICURFDEGYADYENc,(c)INOTO
   1/4E(R)E(c)E-a-oCURp-aNOT-ap!A"-o>>o+-z'NCUR-L-A^3,O"IYENI
   FreeBSD-CURRENT!C^3oOCURACURa:-a-ou{|!
   1/2X|^3(R)EOAAU:DEGE+-o<<U:S:O:!A|OYENBYENi-`a.||]|^1
   |O"I+-z|^3|n'XCURN-a-o(R)EP:!uL-akS:o.s+-z-a-o"t^2I!CS:UIDEG^2^3]"IYENI
   FreeBSD-CURRENT
   -a-o"IYENI-aI^3-L-|^3-`aCUROYENhCURA-aRYENLI(c)O^1J"`i-a-oDEGYAD"AYENBYENu|^^3o/
   -uYEN?-a-oDEGYAD|O<<D!S:CURp-aNOT-ap!"!C|p-aG+-z|b -CURRENT
   mailing list CURCUR'-L-"`iAth|u:!S:make world ^3y|"CUR@"C,|^3Ao:
   groups -a-o?u
   >>~!"CURS:Ath-a-oDEGYAD-a-o,U:!ACUR]^3\.|^3Q"a:YENLCURH>>'uo/!C

   S:UI"CCURN^3-L-.|(R)U 3/4UYENO/<<e -CURRENT (c)M -STABLE
   -a-o-aNOT-ap^1i^3o"aOCURACURa:|U uo|aeCUR@O snapshot
   -a(c)!C|^3-a-o(R)EONOTAE|U:AU.|uo|aeYENi"N"u+-o-a-o-a(c)YEN>>!Cuo-ai^3o"C,
   snapshot -a-oYENO/-a-o|b(c)o!G

     * 'u,O^3I.s-a(c)-a-o|w,Eu{|!!C

     * '-L-"NCUR@OA^2^3ae-a-oCURe-aku^1"-o"C,^3ssAAw"IYENI -CURRENT
       (c)INOTO -STABLE!A |yNOTO"S|^3(R)EP:!(c)MAW
       1/4eYENh"CCURN-a@-AA-a-o"IYENI-aI!C

     * NOTDEGCURF'AS:UIuo(R)iCURCUR-a-ou{|!<<O-dCUR@O(c)T(c)w-a-oDEGN|OAI!AYENH"
       3/4CURiS:UIYEN 1/4 "O^3y|"CUR-L-(c)-!C(Ao:uMCUR@-e|O"YEN CVS
       YENiYENH" 3/4CURiAth|u:^3o-oO/-a-oYENi(c)E"AEYENo :)

     * NOTDEGCURF
       1/2T<<O(c)O|^3>>Yn'u,O-a-o.sYEN\-`a^3-L-YENiYENH+-o"`i^3I|h-a-o'u,O!C

   S:UICUR-L-^1i -CURRENT snapshot DEGuYENo|oS:I|!-a-o!S:<<~ 1/2e<<O
   AO!"!C|p-aGS:A.Qn-a-oNOTOCUR@OA(c)wYENB,g^1LYENRCURA'u,O^1L-a-o"t^2I-a-o,U:!A
   ^3I|n?i 3/4U:"IYENIS:^1 3/4a release
   -a-o-a(c)YEN>>!A(c)INOTO"IYENI -STABLE snapshots!C

   +-zYENiYENH-a 1/2+-u+-q snapshots ^3B"u+-o -CURRENT -a-o snapshot
   release!C

   ^1i"CO|^3|bNOT!DEGE-a-oCURACURa:|O"YEN!AYENS:!"CCURN^3-L-.|^2-L-YENICUR@|,
   snapshots!C

   1.9. CURDEG>>oNOTO FreeBSD-STABLE!H

   |^.^1"`i FreeBSD 2.0.5 euo-ai-a-o(R)EO!AS:UI"M(c)wS:a FreeBSD
   -a-ouo(R)i CURA|""aCURa:!CCUR@CURa:YENsDEGu -STABLE
   !AS:UIYENu^1iYEN|DEGu?u>>~ *YEN?CURICURp'T<< *-a-o *S:i
   (^3oNOTOu^1 ISP (c)MDEGO.~CUR
   1/2YENquYEN!A^1i^1eAAc,CURCURYEN\-`aCUR-L-.P?^3
   1/2`i-a-o^3ae|`i(c)O"IYENI-a-o)!C YENtYEN~CUR@CURa:YENsDEGu
   -CURRENT !A+-q 2.0 -a(c)uo|aeYENH<<a!A'NCUR-L-A_|a'AuU 6.2-RELEASE
   (S:t<<aA:o-a-o-a(c)YEN>>)<<eP:iuU!C

   6-STABLE CURACURa:NOTO+-q 6.0-RELEASE P:}(c)l (5-STABLE
   CURACURa:-oaNOTO 5.3-RELEASE
   CURS:<<aCUR~P:}(c)l-a-o)!AuM<<a`iYEN>>-a-o FreeBSD-CURRENT
   'N.||"NOTDEG 7-CURRENT!C

   2.2-STABLE ^3oOCURACURa:AHuU 2.2.8
   -a-ouo-ai|OYEN\|""DEGh!C3-STABLE ^3oO CURACURa:<<hNOTOu^2S:o|b
   3.5.1 uo-aiCURS:<<a!AYEN|CUR]NOTO 3.X
   -a-o^3I<<aCUR@|,uo-ai!CCURS:<<aDEG-L-CURF |wYENth-o|NOT}-a-o<<aA:o
   *YEN?CURS:YEN~!A^3o"C,CURACURa:'N'XYENG"S|^3|AS:oDEGE^1L!C |O
   5-STABLE CURACURa:-a-oCURa:'(c)+-NCUR'<<uA:oCUR@NOTq(R)EP:!!A
   |yYENDnuJAIP:E|b(c)o|wYENthCURe+--a-o-o|NOT}!B-a:AICURI"a:YENLA:Y<<DEGYAD-a-o
   *,E!C

   6-STABLE NOTOYENO/<<eYEN?|buo(R)iCURCUR-a-o -STABLE CURACURa:!C
   6-STABLE -a-o^3I.s-a-oCUR@|,uo-aiNOTO|b August 2012 uo|ae-a-o
   9.1-RELEASE!C

   7-CURRENT ^3oOCURACURa:NOTO FreeBSD -a-o -CURRENT CURACURa:!A
   CUR'uMCUR-L-A_|a|buo(R)i.iCURCUR!C |p-aG.Qn-a
   3/4^1DS:o|hAo:(c)o^3oOCURACURa:-a-o,eDEGT-a-o,U:!A  1/2D-DEGN|O
   CURDEG>>oNOTO FreeBSD-CURRENT!H!C

   1.10. FreeBSD -a(c)YEN>>(c)R|W`i<<hNOTOCURDEG>>o(c)O!H

   +-zYENi-`a.|NOTY"`iYENHCURU'X-oO/ FreeBSD -a-o-a(c)YEN>>|W-oU!G

     * 1) 4.4.2-RELEASE!B4.4-BETA!G^3I<<e+--a-o 1/4AE|r A.B.C ,I!A A
       -aiYENU:YENDn-a-oS:@.~"t^2I-a(c)YEN>>(Major)!A B
       -aiYENU:|,n-a-oS:@.~"t^2I-a(c)YEN>>(Minor)!A C -aiYENU:"C,.L
       *YEN?-a(c)YEN>>(Patch)!C
       <<a+--a-o^CURaa-aiYENU:NOTOS:_NOTDEGYEN?|!-a(c)!A
       ^3q+-`NOTO'u,O-a(c)(ALPHA!BBETA!BGAMMA)!BYEN?|!-a(c)(RELEASE)!C

     * 2) 6.0-STABLE!B7.0-CURRENT!G ^3q+-` FreeBSD
       .||^3CUR@OYENHuo(R)i.sYEN\-`aNOTDEGYEND-a-o-a(c)YEN>>!A-oUNOTDEG
       -CURRENT !AYENO/<<e CURRENT -a(c)YEN>>NOTO 7.0!F FreeBSD
       CUR].||^3CUR@OYENH-ouAA@A(c)w(c)ECURI"t^2I|wYENthNOTDEGYEND-a-o-a(c)YEN>>!A-oUNOTDEG
       -STABLE!A YENO/<<e STABLE -a-o-a(c)YEN>>NOTO 6.0!C
       Ao:uM|p|^1!A"ACUR-L-YENN-ai -STABLE
       'N"S|^3.sYEN\-`a!ACUR]CUR-L-YENN-ai _CURRENT
       'NCUR-L-A(c)wCUR-L-|wYENth!A
       ^3o"aO-a(c)YEN>>NOTONOTU>>^2NOTU|"-a-o!A|OYENB^2 *|^3CUR@CURN
       7.0-CURRENT .|AAU:|" 7.0-STABLE!A|OP:}(c)l 8.0-CURRENT
       -a-ouo(R)i!C CUR-L-^1LCUR@-e"O>>!!A YENN(c)o -CURRENT
       "t^2IP:}uo-a-o^3t<< *NOTU.iS:O:!A,o -STABLE
       NOTUCURn,uCUR-L-A(c)w!A|OYENB^3I|nNOTO|^3NOTU.i,gAAc,-a-o"IYENI-aICUR~"O"IYENI!C
       |p-aGNOTODEGO.~Ao^1O(c)INOTO|o/-aA 3/4^1-,YENx!A^3I|nAUNOTOP:]
       -STABLE >>P -RELEASE CURn,u|n!C YENN(c)o -STABLE >>P -CURRENT
       ^3-L-NOTOCUR@-a 1/2|bP:}uo-ouAA@CURCUR-a-o-a(c)YEN>>!A
       |]|^1"S|^3CUR@O-S(c)w-a-o 1/4AE|r-a(c)YEN>>YENiYENH-oU(c)I!A
       |]|^1^3q+-`S:UI.|YENH 1/2sA:P:CURe'A"OYENN-aiNOTOthO(R)EO-a-o
       -STABLE (c)I -CURRENT !A"O|p!u4.4-STABLE!B 1/2sA:P:CURe'A
       2001/10/08!v!C

     * 3) 5.0-011025-SNAP!B4.2-010816-RELENG!G SNAP >>P RELENG
       "ACUR-L-NOTOYEN?|!uo|ae-a-o-a(c)YEN>>!A"a:CURCUR
       3.0-970625-SNAP -aiYENU:NOTO |b 2001 |~ 10 CURe 25
       CUReuo|ae-a-o 5.0 'u,O-a(c)(SNAPshot)!A^3q+-`NOTO<<u: CURRENT
       -a-o-a(c)YEN>>!C|O 4.2-010816-RELENG -aiYENU:NOTO|b 2001 |~ 8
       CURe 16 CUReuo|ae-a-o 4.2
       <<DYEN?|!-a-oA(c)w-a(c)!A^3q+-`NOTO<<u: STABLE
       -a-o-a(c)YEN>>!C ^3q+-` FreeBSD
       (R)O:CURssCURp^2O.|CUR-L-(c)w(R)EA:AYENX SNAP
       YENH"N'u,O!AuM<<a|^3CUR@CURN SNAP .|AAU:|"
       ALPHA->BETA->GAMMA!A|A"ONOTO
       RELEASE!A|O<<aYENi-`a.||^3CUR-L-(c)w(R)E-a-o RELENG
       YENH"N'u,O"IYENI!A|yNOTO RELENG
       -a-oA(c)w(c)E^3q+-`CURSCURn<<e'A-a-o RELEASE "O-a-o|n!C

   +-znNOTO^2ss-oD.L^3n-a-o^3N>>y!A^3o 1/4E>>!|nCURF!ASNAP
   NOTOP:}uo'AP:!-a-oCUR-o^3!NOTyYENX-a(c)!A
   "-oOCURe'A(011025)'NNOTOBuild Number!A|O ALPHA >>P BETA
   NOTO.mAA-a(c)!A RELEASE(RELENG <<j+-jCUR]-oa)NOTOYEN?|!-a(c)!A^3o
   1/4EA^3,OCURF,NCURFS:a!C

   1.11. "C|,.s-a-o FreeBSD +-N(c)oCURDEG>>o(R)EO+-AYENX!H

   CUR@-e|O"YEN!ARelease Engineering Team <re@FreeBSD.org>
   YENS:!"CYEN|OCUReuo|aeCUR@|,
   release!A"C|,.s-a(c)YEN>>-a-ouo-ai(R)Eu{^3-L-.|"AEYENyCUR 1/2S:i!A
   NOTUAo:-a-oP:}uoCURHu'N.|-a
   3/4^1D!ACURDEG>>o(R)EO,OYENyS:aCURaAa:-a-op^1-oS:^1|""AYENB'u,O^1L!A
   |^1YEN~!A^3o"C,S:oDEGE^3-L-CURw,gS:^1 3/4a|a'u,O^1L!AYENBCUR-L-.|
   1/4vAAT"t^2IA(c)w<< *!C Ao:uM!AuYEN^3o"C,|n-aF|eP:iCURJ -STABLE
   -a-o(R)EP:!YENOCURHuYEN+-o|^3"C,CUR-L-@.D-!A |yNOTOCURj|h
   1/4AE-a-o"IYENI-aI^3-L->>{NOTDEG^3o-oO/AO.V-a-o-oA<< *NOTO FreeBSD
   ^3I|n-a-oAuAICURS:CUR@!C

   |^3Ao:uo|ae+-!^3o/-a-oS:o|h^2O,`^3!CURA(YEN]NOTA release
   -a-o|aeu{-ai!BP:i<< *)!A^3-L-YENi|b FreeBSD -oo-,CURW-a-o
   uo|ae+-!^3o/ CURW+-Ao+-o!C

   NOTDEGCURF-o!"NOT"-o"C,>>Yn ((c)I.Qn) .sAA"e?E.P-a-o"IYENI-aI!A
   CURW+-(-CURRENT-a-o^3!CURA)CURw,g'-L-"`iS:UI"CCURN^3-L-.|uo|ae
   snapshots -a(c)YENi"N"IYENI!C

   1.12.  1/2O:t^3d FreeBSD -a-ouo(R)i!H

   |p-aGNOTOCUR@"C,|^3Ao: FreeBSD pue-a-oAo:Aa:(c)E"M(c)w!A^1^3NOTO
   3/4aOpue-a-o"<<|V (c)INOTO"M(c)w 1/2O:YENiYENHS:i source tree
   ,I-a-ou{|! 1/2X^3oAth-a-o"AE!ANOTOYENNCUR@OYENN 9 O
   CURH(c)O^2O|"-a-o core team "O"M(c)w!C|O|^3YENtCUR@,sP:W^1L 300
   OCURH-a-o commiters |^3AAvS:QYENiYENH-a 1/2+-u *S:i FreeBSD -a-o
   source tree!C

   uL 1/2 *|p|o!ACURj|h 1/4AE-a-oS:iAAU:^3-L-.|"AE<<e|b mailing lists
   YENyDEGQ 1/2
   *^1L!A|OYENBCUR-L-CURA"CUR|a!A"COCURH^3-L-YENiYENHDEGN>>PDEGQ 1/2
   *!C

   1.13. S:Un|p|o"u+-o FreeBSD!H

   "CO FreeBSD -a-o<<n-a(c)YEN>>^3-L-YENiYENH,gYENNDEGI|W ftp +-q
   FreeBSD FTP -,"u+-o!G

     * |p-aG>>Yn 6-STABLE -a-o^3I.s-a(c)!ACUR]'NNOTO 9.1-RELEASE!A
       1/2D-"`i 9.1-RELEASE ^3oOYENO/?y

     * 7-CURRENT Snapshot
       ^3q+-`CUR]NOTO"CCURN^3-L-.|DEGuCUR@YEN-:!A^3oNOTO+-q -CURRENT
       CURACURa:DEGuYENX"O-a-o!A YENDnNOTONOTDEGCURF'-L-"Nu^1"-o"C,
       1/4o:CURss-a-o'u,O-aI(c)MP:}uoCURHu!C

     * |p-aG>>Yn 5-STABLE -a-o^3I.s-a(c)!ACUR]'NNOTO 8.3-RELEASE!A
       1/2D-"`i 8.3-RELEASE ^3oOYENO/?y

     * 5.X!B6X snapshots ^3q+-`"CCURN^3-L-.|DEGuCUR@YEN-:!C

   FreeBSD -a-o CD!BDVD!AAU|^3"a:YENL"u+-oCURe|!YENiYENH|b
   "IYENICURaYENU CURCURS:a:"`i,Nu-a!C

   1.14. S:Un|p|oYENhNOTd,ss!B'-L-YENaeDEGYAD|^^3o/(Problem
   Report!AA^2-oUPR),e(R)AE(R)w(c)O!H

   (c)O|^3"IYENI-aI-a-oAAU:S:on"D^3-L-YENiYENH,gYENN-ooP:CURP:+--a-o
   PRNOTd,ssCURP:+- "O^1iNOTY ((c)INOTO|^^3o/)
   S:UI-a-o?u>>~|^^3o/,e(R)AE(R)w!C

   CUR]YENiYENH"IYENI send-pr(1)
   ^3oO<<u:YENO^3z^1L^1qCURlP:lYENo"O|^^3o/DEGYAD!Bn"DAAU:S:o!C
   (c)I-aINOTO,gYENN -ooP:CURP:+--a-o PR "ODEGeYENXDEGYAD|^^3o/!C

   uM|O!A|b+-z|^^3o/DEGYADCURS:<<e!A 1/2D-YENy 3/4\AA-a |p|o 1/4P:
   1/4g FreeBSD -a-oDEGYAD|^^3o/^3ae!A^3oNOTOCUR@ 1/2gS:iP:DS:A<<c,
   1/4ECUR~-`a 1/4gYENXCUR@ 1/2g-uYEN?|^3YENI-a-o DEGYAD|^^3o/^3ae!C

   1.15. AU|^3"a:YENL|^3Ao: FreeBSD -a-o,eDEGTP:U:!H

   ,O"-L- FreeBSD -oo-,CURW-a-o CURaaYENo |C-ai!C

     --------------------------------------------------------------

                 Chapter 2 CURaaYENo>>PS:TH^3NCURa:'(c)

   Chin-San Huang

   2.1. Ao:(c)o FreeBSD |^3th"C,|n(R)NYENiYENH+-AAE
   3/4\AA-a-a-oP:U:!H

   2.2.
   ^3o"C,CURaaYENo|^3"a:YENL(R)ae|!-a-oP:U:!H^1^3NOTO!G-ACURaa|r(ASCII)(c)I
   PostScript CURS:Ath-a-o(R)ae|!!H

   2.3. th,I|^3Ao:(c)o FreeBSD -a-oP:l>> 1/4 1/2 * 3/4A(mailing
   lists)(c)O!H

   2.4. |^3th"C,YENiYENH"IYENI-a-o FreeBSD .s>>D,s^2O(news
   groups)(c)O?

   2.5. |bCURaaYENoCURCUR+-`NOTY"`iAth|u: "pf(4)"!B"pfctl(8)"
   uYEN^3o"C,|r 1/4EYENN-aiCURDEG>>o.N<<a:(c)O!H

   2.6. |^3th"C, FreeBSD IRC (Internet Relay Chat)AW^1D(c)O!H

   2.7. YENiYENH+-qthAa:Ao+-o FreeBSD -a-o+-D-"| 1/2Ou{DEGV
   1/2mCURIS:TH^3NCURa:'(c)(c)O!H

   2.1. Ao:(c)o FreeBSD |^3th"C,|n(R)NYENiYENH+-AAE
   3/4\AA-a-a-oP:U:!H

   FreeBSD CURaaYENopueCURw^3DEGA:ouo-aiCURFNOTU.i 1/4s-ax
   1/2d^3o-a-oCURaaYENo!AYENi|b http://www.FreeBSD.org/docs.html
   "u+-o!CYENtYEN~!A FreeBSD YEN>>"-a-o
   manual(CUR@-e^3q-oU-a-oman)!BdocCUR]|p|P(R)MYENo^3nAAeCUR@
   1/4E!AYENiYENH>>'AP|a,E|b+-z"t^2ICURW!C

   |^1YEN~!ACUR]<<O/A:^3DEGN 3/4\YEN>>YEN-: FAQ
   ^3I<<a(c)O|C-a-oDEGN|O(R)NYENO/-ai(Bibliography)>>P FreeBSD
   "IYENICURaYENU!C

   2.2.
   ^3o"C,CURaaYENo|^3"a:YENL(R)ae|!-a-oP:U:!H^1^3NOTO!G-ACURaa|r(ASCII)(c)I
   PostScript CURS:Ath-a-o(R)ae|!!H

   |^3-a-o!C^3o"C,CURaaYENo^3-L-CURAS:OYENHCUR-L-|P(R)ae|!Ax|sYENHCURIA-L-AY^3B^2z!A(c)n|b
   FTP CURW+-!AYENiYENH+-q|U FreeBSD FTP -,-a-o /pub/FreeBSD/doc/
   YENO/?yCUR-oS:a:"`iS:An-a-o!C

   CURaaYENo-a-oCURAAthCURe+-YENDnNOTOCUR@"C,CUR-L-|P(c)E
   1/2e(c)O^2O|"!G

     * CURaaYENo|W-oU!ACURn|p!Gfaq(+-`"-L-DEGYu-aP:DEG)(c)INOTO
       handbook(FreeBSD "IYENICURaYENU)uYENuYEN!C

     * |UDEGeA 1/2A:P:-a-o-a-oCURaaYENo!G^3oYENDnNOTOYENN locale
       |W-oU"O"M(c)w-a-o (CUR-L-^2M.!-a-o,U:!AYENiDEGN|O+-z-a-o
       FreeBSD S:@.~"t^2ICURW-a-o /usr/share/locale)
       YENO/<<eCURaaYENoA`|@|^3CURU|C'X-oO/>>y"YEN(CURI 1/2s
       1/2X)|^3A 1/2A:P:!G

         Locale |W-oU    >>!(c)u((c)OYENN-ai-a-o>>y"t!B 1/2s   
                                        1/2X)                  
       en_US.ISO8859-1  NOTu:|!^CURaa(US English)              
       de_DE.ISO8859-1  1/4wCURaa(German)                      
       es_ES.ISO8859-1  |e-ZCURuCURaa(Spanish)                 
       fr_FR.ISO8859-1  -akCURaa(French)                       
       it_IT.ISO8859-15 ,qCURjS:QCURaa(Italian)                
       ja_JP.eucJP      CUReCURaa(Japanese!A 1/2s              
                        1/2XCURe|!!GEUC)                       
       ru_RU.KOI8-R     <<XCURaa(Russian!A 1/2s                
                        1/2XCURe|!!GKOI8-R)                    
       zh_CN.GB2312     A^2AAeCURCURCURaa(Simplified Chinese!A 
                        1/2s 1/2XCURe|!!GGB2312)               
       zh_TW.Big5       YEN?AAeCURCURCURaa(Traditional         
                        Chinese!A 1/2s 1/2XCURe|!!GBig5)       

         Note: CURW|C-a-o|UDEGeA
         1/2A:P:>>y"tCURaaYENoCURCUR!A"A<<D(c)O|^3CURaaYENo^3-L-|^3A
         1/2A:P:!C

     * CURaaYENo-a-o(R)ae|!!G"CYEN-:CURaaYENo^3-L-YENH|U-oO/CUR-L-|P(R)ae|!Ax|s!A"C-oO/(R)ae|!^3-L-|U|^3|nAa!A
       |^3"C,(R)ae|! 3/4A|X 1/2uCURW 3/4\AA-a!A|O|^3"C,<<h
       3/4A|X|C|LYENXNOTu:AE[-a-oCURaaYENo!C
       S:UI^3-L-'-L-"N^3o"C,CUR-L-|P(R)ae|!-a-oCURaaYENo!A"O
       1/2T<<OuL 1/2
       *NOTO?A^1oCURW!B|C|L-EYEN>>!A"COCURH^3-L-YENiYENHYEN?+-`|a
       3/4\AA-aCUR-o(R)e!A YENO/<<eYENi"N"IYENI-a-o(R)ae|!|pCURU:

           (R)ae|!                     >>!(c)u                 
       html-split      ^3^1,` 1/4O|!                           
       html            S:^1 3/4a 1/4O|!                        
       pdb             Palm Pilot ,e(R)AE(R)ae|!!A"IYENI iSilo 
                       u{|!"O 3/4\AA-a                         
       pdf             Adobe's PDF (R)ae|!                     
       ps              PostScript (R)ae|!                      
       rtf             Microsoft's RTF(R)ae|![a]               
       txt             -ACURaa|r(ASCII)                        
       Notes:          
       a. .i"IYENI MS Word "OP:}+-O RTF (R)ae|!-a-o,U:!AP:
       1/4AEAAaYENU:"ACUR-L-.||UDEGES:o.s!C
       (|bP:}+-OCURaaYENo<<a!An<<o: CTRL+A, CTRL+END, F9!A^3o
       1/4ECURlCUR~.|S:o.sP: 1/4AE-a-oAAaYENU:!C)

     * CURaaYENo-a-oA-L-AY!BYEN'YEN]CURe|!!GYENO/<<e|^3CURT-oO/CURe|!!G

         1. .i+-A:YENI ^3^1,` 1/4O|!(html-split)!A^3^1,`
            1/4O|!(c)O^2-L-YENI-a-o|UAE(R) *.|YENy"IYENI tar(1)
            "OA-L-AY!CAE|Wu^2S:A|^3 .tar -a-oAE(R) *'NNOTO tar
            (R)ae|!!C +-uuU!A.||AYENHCURU|CCURe|!|AA-L-AY!C

         2. "a:YENL(R)ae|!-a-oAE(R) *^3-L-.|NOTO^3aeCUR@AE(R)
            *!AAE|W^3q+-`.|NOTO!G book.(R)ae|! (A|"O!G book.pdb!A
            book.html uYENuYEN..<<a+-^3q+-`YEN[CURW!y.(R)ae|!!z).

            |O^3o"C,AE(R)
            *.|CURAS:OYENH"a-oO/A-L-AY<<NOT-oAP:i|aeA-L-AY!A|O|s|""a-oO/A-L-AY<<NOT-oA!C

    (R)ae|!                           >>!(c)u                            
    zip     Zip (R)ae|!!AYn|b FreeBSD CURW,NA-L- zip                     
            AE!A<<hYEN^2P:.YENy|w,E chinese/unzip (c)I archivers/unzip!C 
            BZip2 (R)ae|!!AAo:uMCUR-L-|p zip (R)ae|!-a-o                 
    bz2     1/4s-ax"IYENI!A|yNOTO|n^3B|b(c)oYENiA-L-AY|"S:oCURp-a-oAE(R) 
            *!C n,NA-L- bz2 (R)ae|!-a-o,U:!A>>YYENy|w,E archivers/bzip2  
            !C                                                           

            (c)OYENH^1^3NOTO Handbook -a-o PostScript
            -a(c)(R)ae|!!A.|YENH BZip2 (R)ae|!A-L-AY!A |s(c)n|b
            handbook/ YENO/?yCUR-o!A AE|W'NNOTObook.ps.bz2!C

   ?i
   3/4U:.QnCURU,u:-a-oCURaaYENo(R)ae|!>>PA-L-AY<<NOT-oACURS:<<a!A<<hn"M(c)wNOTOS:_YENH
   FreeBSD (R)MYENo(package) <<NOT-oA"OCURU,u:!C

   CURU,u:!B|w,E!ypackage!z-a-o|n^3B|b(c)o!GYENiYENH^3z^1LCUR@-e
   FreeBSD (R)MYENo-oTH^2zCURe|!"OP:i|ae-oTH^2z!ACURn|p pkg_add(1)
   CURI pkg_delete(1)!C

   Y"M(c)w|nnCURU,u:!B|w,E!ypackage!z-a-o,U:!AYEN^2P:.n
   1/2T>>{(c)OnCURU,u:-a-oAE|W!C
   CURaaYENopue-a-o(R)MYENo(package)^3q+-`NOTO(c)n|bNOTO packages
   -a-oYENO/?yCUR-o!A "COCURaaYENopue-a-o(R)MYENoAE|W^3q+-`NOTO!G
   CURaaYENo|W-oU.>>y"t. 1/2s 1/2X.(R)ae|!.tgz !C

   A|O"OCURl!A^CURaa-a(c)-a-o FAQ ((R)ae|!?i 3/4U: PDF)|b package
   'NYENsDEGu faq.en_US.ISO8859-1.pdf.tgz!C

   |AA|O"OCURl!ACURCURCURaa-a(c)-a-o FAQ ((R)ae|!?i 3/4U: PDF)|b
   package 'NYENsDEGu faq.zh_TW.Big5.pdf.tgz!C

   -a
   3/4^1D^3oAICURS:<<a!A'NYENiYENHYENICURU+-<<u:YENO"O|w,ECURCURCURaa-a(c)
   FAQ (R)MYENo!G

 # pkg_add ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/packages/faq.zh_TW.Big5.pdf.tgz

   S:^1|"CURS:<<a!AYENiYENHYENI pkg_info(1) "OS:a:YENXAE(R)
   *,E|bthAa:!G

 # pkg_info -f faq.zh_TW.Big5.pdf
 Information for faq.zh_TW.Big5.pdf:

 Packing list:
         Package name: faq.zh_TW.Big5.pdf
         CWD to /usr/share/doc/zh_TW.Big5/books/faq
 File: book.pdf
         CWD to .
 File: +COMMENT (ignored)
 File: +DESC (ignored)

   |p|P+-z(c)ONOTY"`i-a-o book.pdf .|^3Q|w,E"`i
   /usr/share/doc/zh_TW.Big5/books/faq CUR-o!C

   YCUR-L-.QYENI package
   CURe|!|w,E!A"-o>>o'N>>YCURaDEGECURU,u:!B,NA-L-AY!B
   1/2AE>>s"`iS:A.QnA\(c)n-a-o|`i,mYENh!C

   A|"O!A^3^1,` 1/4O|!(split HTML)-a(c)-a-o^CURaa FAQ (A-L-AYNOTDEG
   bzip2(1)).|(c)n|b
   doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2
   nCURU,u:!B,NA-L--a-o,U:!A<<hnYEN'!G

 # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2
 # bzip2 -d book.html-split.tar.bz2
 # tar xvf book.html-split.tar

   ^3o(R)ES:A.|NOTY"`iCUR@DEGi .html -a-oAE(R) *!A
   YENDn-a-oYENO/?yAENOTDEG index.html
   CUR-oS:tYENDYENO/?yCURI^3su^2"`i"a:YENLCURaaYENo!C(Y|^3>>Yn-a-o,U:!ACUR]YENiYENH
   1/2AE>>s(c)I.h^2 3/4^3o"C,AE(R) *"`i|PCUR@YENO/?yCURU)

   2.3. th,I|^3Ao:(c)o FreeBSD -a-oP:l>> 1/4 1/2 * 3/4A(mailing
   lists)(c)O!H

   ^3oODEGYAD!AYENiYENH+-q FreeBSD "IYENICURaYENUCURW+--a-o P:l>> 1/4
   1/2 * 3/4A(mailing-lists) ^3!CURAAo+-ou-a(R) *!C

   2.4. |^3th"C,YENiYENH"IYENI-a-o FreeBSD .s>>D,s^2O(news
   groups)(c)O?

   ^3ou-a(R) *YENiYENH+-q FreeBSD "IYENICURaYENUCURW+--a-o
   .s>>D,s^2O(newsgroups) ^3!CURAAo+-ou-a(R) *!C

   2.5. |bCURaaYENoCURCUR+-`NOTY"`iAth|u: "pf(4)"!B"pfctl(8)"
   uYEN^3o"C,|r 1/4EYENN-aiCURDEG>>o.N<<a:(c)O!H

   ^3o-aiYENU: man -a-o^3^1,`!A"t^2ICURWCUR@-e|^3CURKO^3^1,`!G

     * 1->generl commands

     * 2->system calls and error numbers

     * 3->C libraries

     * 4->devices and device drivers

     * 5->file formats

     * 6->games

     * 7->miscellaneous information pages

     * 8->system maintenance and operation commands

   CURn|p!Gpf(4) 'NNOTO<<u: man 4 pf!C

   2.6. |^3th"C, FreeBSD IRC (Internet Relay Chat)AW^1D(c)O!H

   |^3-a-o!ACURj^3!CURA-a-o IRC YEND 3/4-:^3-L-|^3 FreeBSD
   ^2aCURNAW^1D!G

     * EFNet -a-o #FreeBSD AW^1DNOTOO FreeBSD  1/2 * 3/4A!A
       |yYENiCUR-L-
       3/4A|X"-o"C,.QCUR-L-^3O|OAo(c)I-aI.h+-IS:LYENI-a-o!C
       ^3o,INOTO^2aCURNYENI-a-oAW^1D!A,U:AD
       1/2d^3oNOTAE|U:-ACURI!y(c)E!B^1BDEGE!B(R)O:-aZ!zuYEN!A 
       1/2D--a`.N!GS:UICURw,gA:uS:i^1LS:ACURF!IYEN>>AW^1DYENi,gYENN
       irc.chat.org P:iCURJ!C

     * EFNet -a-o #FreeBSDhelp AW^1DCURDNOTOu^1 FreeBSD
       "IYENI-aICURS:P:!YENaeNOTy-a-o!A"O^3o,I'-L-DEGY.|CURn #FreeBSD
       |nCUR@"C,!A.iuM 1/2D-CUR-L-nCUR@-aN,-L-AH<<KP:ADEGY!C

     * DALNET -a-o #FreeBSD AW^1D!AYENiYENN
       irc.dal.net(|`i(c)oNOTu:DEGe)CURI irc.eu.dal.net(|`i(c)o
       1/4UNOTw)P:iCURJ!C

     * DALNET -a-o #FreeBSDHelp AW^1D!AYENiYENN
       irc.dal.net(|`i(c)oNOTu:DEGe)CURI irc.eu.dal.net(|`i(c)o
       1/4UNOTw)P:iCURJ!C

     * UNDERNET -a-o #FreeBSD AW^1D!AYENiYENN
       us.undernet.org(|`i(c)oNOTu:DEGe)CURI eu.undernet.org(|`i(c)o
       1/4UNOTw)P:iCURJ!C
       YENN(c)o^3oNOTOO>>^2S:U.sCURaYENI-a-oAW^1D!A  1/2D-DEGO+-o
       3/4\AA-aS:OCURH|VS:A'-L-CURI-a-o^3su^2(c)IAE(R) *!C

     * RUSNET -a-o #FreeBSD AW^1DNOTO<<X>>yDEGe(R)a-a-o FreeBSD
       "IYENI-aIAW^1D!C ^3o,I|P(R)ECUR]NOTOCUR@-eYENaeNOTy-a-oDEGQ
       1/2 *|nYENh^3B!C

     * freebsd-gnome -a-o #FreeBSD AW^1D!AYENiYENN irc.freenode.net
       P:iCURJ!A ^3oNOTO Gnome -a-o FreeBSD "IYENI-aIAW^1D!C

     * freenode -a-o #bsdchat AW^1D!AYENiYENN irc.freenode.net
       P:iCURJ!A ^3oNOTOYENxAEW-a-o FreeBSD "IYENI-aIAW^1D!C(UTF-8 
       1/2s 1/2X)

   CURWz"COAW^1D^3-L-CUR-L-CUR@
   1/4E!A.(R)ae~^2S:|O|U"a-S|a!AYENB"A"S|^3NOTU^3s!A
   |]|^1!AS:A+-o|hCURe^1A,OCUR~-`aS:a:"`i 3/4A|X|UCURv-a-oAW^1D!C
   |O|^3"C,|aCURe>>P(c)O|^3-a-o IRC CURaaCURAEAth|u:!A'NNOTO
   1/2D--a`.N|UCURv"YEN|aeNOTOS:_<<e.i!A
   YENtYEN~YENi-`a,oAW^1DCUR-oCUR@"C,|~>>'/|NCUR@
   1/2u-a-o.||^3"C,YENN. 3/4>>Yn 3/4AA^3!A A`CURS:
   1/2D-|h<<O<<uAS:>>-a!C

   2.7. YENiYENH+-qthAa:Ao+-o FreeBSD -a-o+-D-"| 1/2Ou{DEGV
   1/2mCURIS:TH^3NCURa:'(c)(c)O!H

   DaemonNews |^3+-M-au'-L-"N FreeBSD -a-o+-D-"| 1/2Ou{DEGV
   1/2mCURIS:TH^3NCURa:'(c)!C ,O+-! 1/2D-"`i BSD Mall ^1iNOTY!AAAAA!C

   FreeBSD Mall |^3'-L-"N BSD S:TH^3NCURa:'(c)YENIP:O-aADEGE!A ,O+-!
   1/2D-"`i FreeBSD Mall ^1iNOTY!AAAAA!C

   "a:YENLYENo|o|^3'-L-"N+-D-"| 1/2Ou{DEGV
   1/2mCURIS:TH^3NCURa:'(c)-a-o^2OA'!B^3ae|`i!AYCUR].Q|C-ai(c)o|^1-a-o,U:!A
   1/2D->>P FreeBSD documentation project P:l>> 1/4 1/2 * 3/4A
   Apu,!AAAAA!C

     --------------------------------------------------------------

                             Chapter 3 |w,E

   Nik Clayton

   3.1. YnYENI^3n-oD-CURuP:} 3/4-:"O|w,E FreeBSD
   -a-o,U:!AnCURU,u:th"C,AE(R) *(c)O!H

   3.2. Y-oICURu,ECUR-L-CURU image AE-a-o,U:!A,O<<c,>>o?`i(c)O!H

   3.3. YENiYENH|bthAa:S:a:"`i|w,E FreeBSD -a-o,N>>!"BAEJ(c)O!H

   3.4. nP:] FreeBSD >>YnCURDEG>>o-a-oDEGt^3AE(c)O!H

   3.5. S:U^1q,-L- RAM YENu|^3 4MB |OCURw!AYENiYENH,E FreeBSD P:U:!H

   3.6. n<<c, 1/4ECUR~-`a|U|aeYEN'^3y+-MYENI-a-oP:}
   3/4-:!B|w,E-oICURu(c)O!H

   3.7. S:U^1q,-L-CURWYENiYENH|^3|h<<S:@.~"t^2IP:U:!H

   3.8. Windows YENiYENH>>P FreeBSD |@|s(c)o^1q,-L-CURWP:U:!H

   3.9. P:a.. Windows S:aS:U-a-o|h<<P:} 3/4-:-oTH^2zu(boot
   manager)(R)^3+- 1/4CURF!In<<c,>>o+-I|^"O(c)O!H

   3.10. IBM Thinkpad A"t|C!BT"t|C(c)I
   X"t|C-a-ouS:DEGO<<NOT^1q,-L-,ES:^1 FreeBSD CURS:<<a<<P:}
   3/4-:!A'N.iCURF!A,O<<c,>>o?`i(c)O!H

   3.11. |^3Aay-a-ouw-oD-YENiYENH(R)^3"O,E FreeBSD ^1A!H

   3.12. YENI|w,E-oICURuP:}
   3/4-:(R)E!A<<o|^3"C,(c)C,^2{P:HuoYENI!I^3oNOTOCURDEG>>o+-!-ap(c)O!H

   3.13. YENIYENu-oD-P:} 3/4-:CURu"O|w,E!A|yYENu-oD-P:}
   3/4-:<<a!A|w,Eu{|!>>!S:a:CUR-L-"`iYENu-oD-...^3oNOTO<<c,>>oCURF!H

   3.14. S:UYENiYENHYENI PLIP(Parallel Line IP)CURe|!"O|w,E FreeBSD
   "`iuS:DEGO<<NOT^1q,-L-CURWP:U:!H

   3.15. ,OYENIthCUR@-oO/uw-oD-^3](c)wDEGN 1/4AE(geometry)(c)O!H

   3.16. CURA^3I-oI-oD- 3/4-:(R)E|^3YENo|o"iP:U:!S

   3.17. YENiYENH"IYENIth"C,-oI-oD--oTH^2zu{|!(disk managers)(c)O!H

   3.18. FreeBSD |w,ES:^1^2|<<a<<P:} 3/4-:!A|yNOTO^1q,-L-<<o>>!
   !S:Missing Operating System!"^3oNOTO<<c,>>oCURF!H

   3.19. NOTDEGCURDEG>>o 3/4-: 3/4^1CURW|h<<P:} 3/4-:-oTH^2zu(boot
   manager)YENX^2{CURF F? ^3oO?i^3aeue+-!A
   |y<<oCUR-L-.||UDEGE,o^1L|OA:~A:oP:} 3/4-:(c)O!H

   3.20. |w,E FreeBSD (R)E!A>>Yn|w,ES:^1 3/4a-a-o sources P:U:!H

   3.21. >>Yn<<.s build kernel P:U:!H

   3.22. +-K 1/2X 1/2s 1/2X,O+-A:YENI DES!BBlowfish (c)I MD5
   -a-othCUR@-oO/!H,O<<c,>>o^3](c)w(c)O!H

   3.23. NOTDEGCURDEG>>oP:} 3/4-:-oICURuP:}"`iCUR@YENb!A'NYENX^2{
   Probing Devices... -a-oue+-DEGT(R)S:!AuM<<a'NDEG+-|iCURF!H

   3.24. "t^2I,ES:^1"A<<P:} 3/4-:<<a!ANOTDEGCURDEG>>o<<oYENX^2{
   !S:panic: can't mount root!"!H

   3.25. DEGO 3/4D-AAe^3ICURj"iNOTDEG|hCURO:!H

   3.26. AE(R) *"t^2I^3ICURj"iNOTDEG|hCURO:!H

   3.27. NOTDEG|o|b+-ODEGE.s-a-o kernel (R)E!ANOTY"`i
   !S:archsw.readin.failed!" ?u>>~DEGT(R)S:!H

   3.28. !S:security profiles!" NOTO<<u:CURDEG>>o!H

   3.29. |bP:} 3/4-:(R)E!A?i 3/4U:"IYENI ACPI <<h|b|w,E^1Lu{'N+-
   3/4CURF!A,O<<c,>>o?`i!H

   3.1. YnYENI^3n-oD-CURuP:} 3/4-:"O|w,E FreeBSD
   -a-o,U:!AnCURU,u:th"C,AE(R) *(c)O!H

   FreeBSD 4.X -a-o,U:!A>>Yn"aO image AE!G floppies/kernel.flp CURI
   floppies/mfsroot.flp!Cimage AEYEN^2P:.YENICURu"a^1^3NOTO fdimage
   (c)I dd(1) "OP:C,DEGe"`i-oICURuCURW!C YNOTO|b FreeBSD 5.3
   (CURICURS:<<a-a(c)YEN>>)|^3<<.s^3W^1-oP:}
   3/4-:CURuNOT[-oc!A(c)OYENHnS:`i-a-oNOTO floppies/boot.flp YENHCURI
   floppies/kernX AE(R) *(YENO/<<e X NOTDEG 1 ,o 2 "aO!AYEN[CURW
   floppies/boot.flp!AA`|@NOTO 3 OAE(R) *)!C

   Y.Q|UCURvCURU,u: distributions -a-o,U:(CURn|pYENH MS-DOS(R) AE(R)
   *"t^2I(R)ae|!|w,E)!A YENHCURUNOTO<<O/A:^3nS:`i-a-o distributions
   !G

     * base/ (4.X -a(c)YEN>><<hNOTDEG bin/)

     * manpages/

     * compat*/

     * doc/

     * src/ssys.*

   S:^1 3/4a|w,E"BAEJYENHCURICURj^3!CURA-a-o|w,EDEGYAD!A 1/2D-DEGN
   3/4\ FreeBSD "IYENICURaYENU-a-o |w,E FreeBSD ^3^1,`

   3.2. Y-oICURu,ECUR-L-CURU image AE-a-o,U:!A,O<<c,>>o?`i(c)O!H

   CUR@+-i 3.5 ^|T(1.44MB) -a-o-oI-oD-CURuNOTOYENiYENH,ECURW 1474560
   bytes -a-o,e(R)AE !A|OP:} 3/4-:CURu-a-o image AE(R)
   *CURjCURp^1e>>UCURWCUR]NOTO 1474560 bytes!C

   |b>>sS:@P:} 3/4-:CURu(R)E!A+-`"-L-?u>>~|^3!G

     * "IYENI FTP "OCURU,u:AE(R) *(R)E!A YEN 1/4?i 3/4U: binary
       P:C,?e 1/4O|!"OCURU,u:!C

       |^3"C, FTP client-oYu{|!!ANOTO^1w^3]+-NP:C,?e
       1/4O|!^3](c)wNOTDEG ascii  1/4O|!!A|OYENB.|
       *S:i+-u|NOT"`i-a-oAE(R) *|aeS:A|r|eNOTDEG client
       -oY-a-oS:@.~"t^2ICURe|! !ACURn|p newline(UNIX(R)ae|!)
       "`iCURFS:@.~"t^2INOTDEG Windows -a-o client -oY.|^3QS:iNOTDEG
       CR-LF(MS-DOS(R)ae|!)!A ^3o.|"I+-o image AEYEN>>" 3/4D"`i
       *S:i|OuL-akYEN?+-`"IYENI!C|]|^1!A|p-aGCURU,u:-a-o image AE(R)
       *CURjCURpY>>P FTP YEND 3/4-:CURW+--a-oAE(R) *!yCUR-L-CUR@P!z
       -a-o,U:!A 1/2D-<<.s"IYENI binary P:C,?e 1/4O|!CURU,u:S:YYENi!C

       FTP <<u:YENO: P:iCURJ FTP CURS:<<a!AYEN' binary
       <<u:YENO!AS:YYENiCURA'<<"`i binary P:C,?e
       1/4O|!!AuM<<a|ACURU,u:NOTUAo: image AE(R) *!C

     * -a 1/2+-uYENI MS-DOS -a-o copy <<u:YENO((c)IAth|u: -a-o GUI
       u{|!!B(c)INOTOuo/u!CURW-a 1/2+-u 1/2AE>>s)"O 1/2AE>>sP:}
       3/4-:YENI-a-o image AE"`i-oICURuCURW!C

       CUR-L-YENiYENHYENI^1^3NOTO copy ^3oAthu{|!-a 1/2+-u+-N image
       AE 1/2AE>>s"`i-oICURuCURW!A|]NOTDEG image
       AEYEN>>"YEN]S:tCURFS:^1
       3/4a-a-o-oIy,e(R)AE!A(c)OYENHCUR-L--`a^3ae-AYENI
       1/2AE>>sCURe|!!A |OYEN^2P:."IYENIS:CP:YENCURu"au{|!(^1^3NOTO
       fdimage (c)I rawrite)!A YENH !S:raw!"
       CURe|!P:C,DEGe"`i-oICURuCURW!C(^3o^3!CURAYENiDEGN 3/4\ FreeBSD
       "IYENICURaYENUCURW-a-o |w,E FreeBSD)

   3.3. YENiYENH|bthAa:S:a:"`i|w,E FreeBSD -a-o,N>>!"BAEJ(c)O!H

   |w,E"BAEJ-a-o,N>>!!A 1/2D-DEGN 3/4\ FreeBSD "IYENICURaYENUCURW-a-o
   |w,E FreeBSD ^3^1,`^3!CURA!C

   3.4. nP:] FreeBSD >>YnCURDEG>>o-a-oDEGt^3AE(c)O!H

   FreeBSD 4.X CURS:<<e-a-o-a(c)YEN>>!AuwAAe>>Y"DNOTDEG 386
   (c)IS:oDEG-a-AA-a-o PC !ADEGO 3/4D-AAe(RAM)|U:CURO:n 5 MB
   (c)IS:o|h!Auw-oD--aAAP:!|U:CURO:n 60 MB (c)IS:o|h!C
   CUR-L-^1L!AFreeBSD !y"t^2I|w,Eu{|!!z-a-oDEGO
   3/4D-AAe(RAM)>>Y"DNOTDEG|U:CURO: 16 MB!C

   +-q FreeBSD 5.X DEG_!AuwAAe>>Y"DNOTDEG 486 (c)IS:oDEG-a-AA-a-o PC
   !ADEGO 3/4D-AAe(RAM)|U:CURO:n 24 MB
   (c)IS:o|h!Auw-oD--aAAP:!|U:CURO:n 150 MB (c)IS:o|h!C

   FreeBSD -a-o(c)O|^3-a(c)YEN>>^3-L-YENiYENHYENuYENIS:CP:YEN-a-o MDA
   ^3W(R)aeAAaYENU:YENd!ACUR-L-^1L...nP:] X11R6 uo/u!-a-o,U:!A
   AUNOTO|U:CURO:YENI VGA
   (c)IS:o|n^3W(R)ae-a-oAAaYENU:YENd"OYENIS:a!C

   ^3o^3!CURACUR]YENiDEGN 3/4\ Chapter 4!C

   3.5. S:U^1q,-L- RAM YENu|^3 4MB |OCURw!AYENiYENH,E FreeBSD P:U:!H

   |w,E FreeBSD 4.X -a-oDEGO 3/4D-AAe>>Y"DNOTDEG|U:CURO: 5 MB !A|O
   |w,E FreeBSD 5.X (S:tCURS:<<a-a(c)YEN>>) <<hNOTO|U:CURO:n 8 MB !C

   |b 5.X CURS:<<e-a-o(c)O|^3 FreeBSD
   -a(c)YEN>>!A^3-L-YENiYENHYENuYENI 4 MB -a-oDEGO 3/4D-AAe"O
   !y^1BS:@!z!ACUR-L-^1L!A<<e+-"-o,`S:UI>>!^1LCURF!y"t^2I|w,Eu{|!!z-a-o,U:!A
   <<huL-akYENuYENI 4 MB -a-oDEGO
   3/4D-AAe"ODEGo|ae!C|]|^1!AS:AYENiYENHYENy|b!y"t^2I|w,Eu{|!!z^3o"BAEJCURS:<<e!A
   YENy+-NDEGO 3/4D-AAeYEN["`i 16 MB YENHCURW!A|w,ES:^1 FreeBSD
   CURS:<<a!A'NYENiYENHS:a|h 3/4l-a-oDEGO 3/4D-AAe(R)^3CURU"O!C
   (c)I-aINOTO!AYENyS:an|w,E-a-ouw-oD-(R)^3"`i|^3"NOTDEG-:DEGO
   3/4D-AAe-a-o 3/4-: 3/4^1CURWYENy,E|n!A uM<<a|AS:auw-oD-(c)n|^`i
   3/4-: 3/4^1!C

   |^1YEN~!AYENuYENI 4 MB -a-oDEGO
   3/4D-AAe"O^1BS:@-a-o,U:!AYEN^2P:.n|U>>s kernel((R)^3+-
   1/4CUR-L-YEN^2n-a-oYENHCURIA:eNOT^1CUR@"C,-aF|e)!C
   CUR]|^3CURH|"YEN\YENuYENI 2 MB -a-oDEGO 3/4D-AAeYENH FreeBSD P:}
   3/4-:(Ao:uM^3o 1/4E-a-o"t^2I'XYENGuYEN(c)o 1/4oCURF..)

   3.6. n<<c, 1/4ECUR~-`a|U|aeYEN'^3y+-MYENI-a-oP:}
   3/4-:!B|w,E-oICURu(c)O!H

   YENO/<<e!AAU"S|^3?`i-ak!yYENu!z|U>>s+-MYENI-a-oP:}
   3/4-:!B|w,E-oICURu!C YEN^2P:.^3z^1L|U|aeYEN'^3yS:^1
   3/4aS:@.~"t^2I-a-o release(uo|ae)!A^3o
   1/4E,I+-CUR~.|YEN]NOTA|UCURv-a-oP:} 3/4-:!B|w,E-oICURu!C

   Y.Q|U|aeYEN'^3y!Buo|ae(release)CUR@OS:^1 3/4a-a-oS:@.~"t^2I!A
   1/2D-DEGN 3/4\^3o 1/2g Release Engineering CURaa^3^1!C

   3.7. S:U^1q,-L-CURWYENiYENH|^3|h<<S:@.~"t^2IP:U:!H

   YENiYENHS:r!A 1/2D-DEGN 3/4\ |h<<S:@.~"t^2I ^3o 1/2gCURaa^3^1!C

   3.8. Windows YENiYENH>>P FreeBSD |@|s(c)o^1q,-L-CURWP:U:!H

   YENy,E Windows |A,E FreeBSD!C "-o>>o FreeBSD |h<<P:}
   3/4-:-oTH^2zu(boot manager)'N.|YENX^2{?i^3aeAAyS:A?i 3/4U:nYENH
   Windows (c)I FreeBSD "OP:} 3/4-:!CCUR-L-^1L!AYS:ANOTOYENy,E
   FreeBSD |A,E Windows -a-o,U:!A "-o>>o Windows
   +-N.|CUR-L-DEGYYENy(R)_!AS:a FreeBSD -a-o|h<<P:}
   3/4-:-oTH^2zu(boot manager)>>\+- 1/4!A
   .iS:A^1JCURW^3o-oO/+-!-ap(R)E!A 1/2D-DEGN|OCURUCUR@,`>>!(c)u!C

   3.9. P:a.. Windows S:aS:U-a-o|h<<P:} 3/4-:-oTH^2zu(boot
   manager)(R)^3+- 1/4CURF!In<<c,>>o+-I|^"O(c)O!H

   YENiYENHYENIYENHCURUCURT-oO/CURe|!CURS:CUR@!A"O+-I|^S:A-a-o
   FreeBSD |h<<P:} 3/4-:-oTH^2zu(boot manager)!G

     * YENiYENH+-q|U FreeBSD FTP -,-a-o /pub/FreeBSD/tools/ S:a:"`i
       bootinst.exe CURI boot.bin ^3o"aOAE!A YENH binary P:C,?e
       1/4O|!CURU,u:<<a!A 1/2AE>>s"`i-oICURuCURW!A|AYENI DOS P:}
       3/4-:CURuP:} 3/4-:!A +-uuUYEN'Ath|u:CURU+--a-o<<u:YENO!G

 > bootinst.exe boot.bin

       ^3o 1/4E!A|h<<P:} 3/4-:-oTH^2zu(boot
       manager)'N.|<<,ES:^1^2|CURF!C

     * YENI FreeBSD P:} 3/4-:CURuP:} 3/4-:!AuM<<a?i^3ae"-oAa:?i
       Custom installation(|Uq|w,E)!A |A?i Partition!A+-uuU?i
       3/4U:S:An,E|h<<P:} 3/4-:-oTH^2zu(boot
       manager)-a-ouw-oD-(^3q+-`NOTO^2A:CUR@Au)!A uM<<a.|YENX^2{
       partition editor -a-oue+-!A^3o(R)E 1/2D-CUR-L-nDEGuYENo|o
       *S:i!A-a 1/2+-u<<o: W Ax|s!A ^3o(R)Eu{|!'N.|DEGYNOTOS:_n
       1/2T(c)w Write !A^3I<<aYENX^2{ Boot Manager ?i 3/4U:ue+-!A
       DEGO+-on?i !S:Boot Manager!" !A^3o 1/4E'N.|<<.s+-N|h<<P:}
       3/4-:-oTH^2zu(boot manager)
       |w,E"`iuw-oD-CURW!C^2{|b!A'NCURjYEN\S:i|"YENiYENHA-:P:}|w,E?i^3ae"A<<P:}
       3/4-:CURF!C

     * YENI FreeBSD P:} 3/4-:CURu(c)INOTOP:} 3/4-:YENu-oD-P:}
       3/4-:!AuM<<a?i^3ae"-oAa:?i !S:Fixit!" !A(c)INOTOYENH Fixit P:}
       3/4-:CURu(c)INOTOYENu-oD-|w,E-a-o^2A:CURGCURu(?i 3/4U:
       !S:live!" filesystem ?iP:u)uM<<a'N.|P:iCURJ fixit shell
       CURF!A+-uuUYEN'CURU|C<<u:YENO!G

 Fixit# fdisk -B -b /boot/boot0 bootdevice

       1/2D-+-NCURW+--a-o bootdevice  *S:iNOTDEG+-z^1e>>U-a-oP:}
       3/4-:uw-oD-YENN,^1 CURn|p ad0 (^2A:CUR@Au IDE uw-oD-)
       !A(c)INOTOad4 (first IDE disk on auxiliary controller), da0
       (^2A:CUR@Au SCSI uw-oD-)uYENuYEN!C

   3.10. IBM Thinkpad A"t|C!BT"t|C(c)I
   X"t|C-a-ouS:DEGO<<NOT^1q,-L-,ES:^1 FreeBSD CURS:<<a<<P:}
   3/4-:!A'N.iCURF!A,O<<c,>>o?`i(c)O!H

   (YEN>>DEGYADYENDnNOTOuoYENI|b 2000 ~ 2001 YEN|CUReP:!(R)E)^3o"C,
   IBM  3/4-: 3/4^1CURW-a-o BIOS |'A-a(c)YEN>>|^3O-a:AI(bug).|S:a
   FreeBSD CURA^3IDEGI>>~>>{NOTDEGNOTO FAT
   (R)ae|!CURA^3IDEGI!AuM<<a.i BIOS ,OuUDEG>>'u FreeBSD
   CURA^3IDEGI(R)E!A'N.|.iCURF!C

   (R)U 3/4U IBM CURe+--a-o>>!-ak[1]
   !AYENHCURU<<NOT,^1/BIOS-a(c)YEN>>-a-o 3/4-:-oO/!ACURw,g^3-L-|^3
   *YEN?!G

            <<NOT,^1                      BIOS -a(c)YEN>>             
   T20                        IYET49WW(S:tCURS:<<a)                   
   T21                        KZET22WW(S:tCURS:<<a)                   
   A20p                       IVET62WW(S:tCURS:<<a)                   
   A20m                       IWET54WW(S:tCURS:<<a)                   
   A21p                       KYET27WW(S:tCURS:<<a)                   
   A21m                       KXET24WW(S:tCURS:<<a)                   
   A21e                       KUET30WW                                

   ^3o"C,<<a'A-a-o IBM BIOS  *q-a(c)CURj|hCURw,g
   *YEN?|^1CUR@-a:AI!CJacques Vidrine  1/4gu^1 FreeBSD laptop
   computer P:l>> 1/4 1/2 * 3/4A -a-o ^3o<<E<<H
   CURW+->>!(c)uCURFYS:A.s-a-o IBM
   uS:DEGO<<NOT^1q,-L-uL-akP:P:S:QYENH FreeBSD P:}
   3/4-:-a-o,N-ak"BAEJ (DEG^2^3]YENiYENHCURE-AA(c)IDEG-AA BIOS
   -a(c)YEN>>-a-o,U:)!C

   |p-aG 3/4-: 3/4^1YENI-a-oNOTO,uYENj|-a(c)YEN>>-a-o
   BIOS!A|OYENBCUR-L- 3/4A|XS:o.s BIOS
   -a-o,U:!A"-o>>oYENHCURUS:UI.|CURP:^2D- 1/4E(R)E,N-ak!A +-D-S:A|p|o
   *S:i FreeBSD CURA^3IDEGI(c)O"IYENI-a-o ID !A"A|w,ENOTUAo:
   *,Eu{|!!C

   First, you will need to restore the machine to a state where it
   can get through its self-test screen. Doing this requires powering
   up the machine without letting it find a FreeBSD partition on its
   primary disk. One way is to remove the hard disk and temporarily
   move it to an older ThinkPad (such as a ThinkPad 600) or a desktop
   PC with an appropriate conversion cable. Once it is there, you can
   delete the FreeBSD partition and move the hard disk back. The
   ThinkPad should now be in a bootable state again.

   With the machine functional again, you can use the workaround
   procedure described here to get a working FreeBSD installation.

    1. +-q http://people.FreeBSD.org/~bmah/ThinkPad/ "OCURU,u: boot1
       CURI boot2 ^3o"aOAE!C S:a^3o"aOAE(R)
       *(c)n|b-oICURu!BYENu-oD-(c)I"a:YENLuw-oD-CURW!C

    2. YENHCUR@-e|w,E FreeBSD ,E"`i ThinkPad CURW!ADEGO+-o
       !yCUR-L-nYENI!z Dangerously Dedicated  1/4O|!!C
       |^1YEN~!A!yCUR-L-n!z |bS:^1|"|w,ECURS:<<a'N<<P:} 3/4-:!C

    3. P:iCURJ shell!G(<<o: ALT+F4) CURA'<<"`i!S:Emergency
       Holographic Shell!" (c)INOTO?i^3aeCURW+-?i 3/4U: !S:fixit!"
       shell!C

    4. YENI fdisk(8) S:a FreeBSD CURA^3IDEGI ID YENN 165 S:iNOTDEG
       166(OpenBSD(c)O"IYENI-a-oID)!C

    5. S:aee'-L--a-o boot1 ,o boot2 ^3o"aOAE(R)
       *(c)n"`iYENO/<<e-a-ouw-oD-AE(R) *"t^2ICURW!C

    6. YENH disklabel(8) S:a boot1 CURI boot2 |s"`iS:A-a-o FreeBSD
       slice CURW+-!C

 # disklabel -B -b boot1 -s boot2 ad0sn

       !un!v NOTOS:A,E FreeBSD -a-o slice!A  1/2D-+-N !un!v
       S:iNOTDEG^2AA|XS:A"t^2I^2{-ap-a-o slice!C

    7. <<P:} 3/4-:!A|b boot prompt .|NOTY"`i|^3 OpenBSD -a-o?iP:u!A
       ?iYEN|!A^3o 1/4E'N.|YENH FreeBSD P:} 3/4-:!C

   YENtYEN~!A|U:(c)o|p|oAAy OpenBSD CURI FreeBSD "A|s|b|PCUR@YENx IBM
   ThinkPad CURW... ^3oODEGYAD'NYENaeu^1|U|`iNOTY 3/4IYENh^1A,OCURF
   :p

   3.11. |^3Aay-a-ouw-oD-YENiYENH(R)^3"O,E FreeBSD ^1A!H

   (|p-aG<<U:DEGi<<u-a-o,U:)CUR]NOTOYENiYENH!ACUR-L-^1L^3o.Q-akAAauMCUR-L-CURO(c)u'
   1/4!C:(

   |p-aG|bCUR@-e,u.s-a-o IDE
   uw-oD-CURWNOTY"`i|^3Aay!A<<U:|^3YENi-`aYENN-ai!G^3oAuuw-oD-S:Y+-N+-
   3/4AICURF!C (|]NOTDEGYENO/<<e(c)O|^3,u.s-a-o IDE
   uw-oD-!ACUR-o^3!^3-L-|^3|UDEGE remapping Aay-a-o-`aCURO!C
   |p-aGNOTY"`i|^3Aay!A<<h-aiYENU:YEN|CUR-o^3!|UDEGE remapping
   YEN\-`aYEN-c-(R)A:!AuL-ak^3B^2zAay!A
   CUR]'NNOTO>>!^3oAuuw-oD-CURw,gNOTOA:Y<<.lAau{<<
   *CURF!C)S:UI<<O/A:^3P:RAu.suw-oD-CURn,uDEG(R)-U:"C,o!C

   |p-aGNOTO SCSI uw-oD-|^3Aay-a-o,U:!A 1/2D-,OuUDEGN|O^3oO ,N-ak!C

   3.12. YENI|w,E-oICURuP:}
   3/4-:(R)E!A<<o|^3"C,(c)C,^2{P:HuoYENI!I^3oNOTOCURDEG>>o+-!-ap(c)O!H

   YNOTY"`iCUR@"C,(c)C,^2S:^2{P:H!A^1^3NOTOP:} 3/4-:CURuP:}
   3/4-:P:}"`iCUR@YENb'N.iCURF!A-oI-oD-
   3/4-:S:^1YENth"SYENo|oDEGES:@!B (c)INOTOCUR-L-A_CURIAD-<<P:}
   3/4-:!A 1/2D-YENyAENOTdYENHCURU'XO 1/2u-A!G

    1. 1/2D-
       1/2T(c)wNOTOS:_NOTDEGYENth.s!B"S|^3-oIy?u>>~-a-o-oICURu!H
       (^3I|n"IYENI.sP:R-a-o!A|O<<DAo/>>x!B(R)NYEN>>-athAO/-a-o!ANOTAE|U:AU(c)n|bS:E(c)^3CURUCURT|~CURF...=_="")

    2. 1/2D- 1/2T(c)wNOTOS:_|^3YENI binary((c)Iimage)P:C,?e
       1/4O|!"OCURU,u: image AE!H
       (CUR-L-YENIA:+-+-oCUR-L-|n.N<<a:!AS:Y"INOTOS:UICUR]'?.NYEN~YENH
       ASCII P:C,?e 1/4O|!"OCURU,u: binary AE(R) *!I)

    3. YS:ANOTO Windows 95/98/ME/NT/2000/XP/2003 "OCURU,u:!B>>sS:@P:}
       3/4-:-oICURu-a-o,U:!A  1/2D- 1/2T(c)wNOTOS:_|^3|b DOS 
       1/4O|!"IYENI fdimage (c)I rawrite
       ^3o"aOCURu"au{|!!HeA?-a-o^3o"C,S:@.~"t^2I!A ^3-L-.|
       1/4vAATu{|!YENh-a 1/2+-u 1/4gCURJuwAAe!A^1^3NOTO>>sS:@P:}
       3/4-:CURuCURS:Ath-a-oDEGES:@!C |^3(R)EO!A|b GUI
       CURP:+-CURW-a-o DOS shell CUR]YENi-`a.|uoYENI^3o
       1/4E-a-oDEGYAD!C

   |^1YEN~!A-a 1/2+-u^3z^1L Netscape(R) AsA:y 3/4^1CURU,u: image
   AE-a-o,U:!ACUR]|^3Ath|u:^2{P:H!C (c)OYENH!A|p-aGYENiYENH-a-o,U:!A
   1/2D-S:iYENI"a:YENLYENiYENH 1/2O 3/4a^3](c)w-a-o FTP
   client-oYu{|!"OP:i|aeCURU,u:!C (.iuM!AnDEGO+-o 1/2O binary P:C,?e
   1/4O|!)

   3.13. YENIYENu-oD-P:} 3/4-:CURu"O|w,E!A|yYENu-oD-P:}
   3/4-:<<a!A|w,Eu{|!>>!S:a:CUR-L-"`iYENu-oD-...^3oNOTO<<c,>>oCURF!H

   ^3q+-`DEGYAD|b(c)oYENu-oD-
   3/4-:^3](c)w?u>>~!CYENO/<<e<<U:|h^1q,-L--a-oYENX 1/4t
   1/4D-.C,DEGt^3AE^3-L-|^3YENu-oD- 3/4-:!A"AYENB
   .|^1wYENy^3](c)wNOTDEG IDE ^3q^1DCURW+- Secondary -a-o Slave
   ^3]^3AE!A|O Secondary CURW+--a-o <<o"S|^3 Master ^3]^3AE!CYENH
   ATAPI -a-o^3W(R)ae|O"YEN!A^3oNOTO?u>>~-a-o^3](c)w!AuM|O Windows
   -a-oS:@-ak
   NOTOCUR-L-^2z.|^3o"C,^3W(R)aeCURW-a-o^3](c)wDEGYAD!A|OYENBP:}
   3/4-:(R)E BIOS DEG>>'uCUR].|^2CUR^1L^3oAI!C
   ^3oCUR]'NNOTONOTDEGCURDEG>>o BIOS
   YENiYENHNOTY"`iYENu-oD-!A"AYENBYENiYENIYENu-oD-P:} 3/4-:!A|y
   FreeBSD uL-akYEN?+-`S:`i"`iYENu-oD-YENHP:P:S:QP:i|ae|w,E!C

   ,N-ak!G<<.s^3](c)w"t^2I!AAAyYENu-oD-|"NOTDEGYEN|(c)O^3s+-u"-o+-o/
   IDE ^3q^1D-a-o Master!A (c)I-aIYENu|^3CUR@+-o/ IDE
   ^3q^1D-a-o,U:!A"-o'NAAyYENu-oD- 3/4-:|"NOTDEG Slave !A.iuM,O IDE
   ^3q^1DCURW|U:CURO:n|^3 Master ^3]^3AE!C

   3.14. S:UYENiYENHYENI PLIP(Parallel Line IP)CURe|!"O|w,E FreeBSD
   "`iuS:DEGO<<NOT^1q,-L-CURWP:U:!H

   YENiYENH!AYENICUR@+-o/'P:^3q-a-o Laplink 
   1/2u'NYENiYENHAAo!CY|^3^3oCURe+->>Y"D-a-o,U:!A 1/2D-DEGN 3/4\
   FreeBSD "IYENICURaYENUCURCUR-a-o PLIP ^3^1,` -a-o^2O^3!^3](c)w

   3.15. ,OYENIthCUR@-oO/uw-oD-^3](c)wDEGN 1/4AE(geometry)(c)O!H

   Note: ^3o,I-a-o!yuw-oD-^3](c)wDEGN
   1/4AE(geometry)!z!A<<u:-a-oNOTOuw-oD-CURW-a-o
   !ucylinders!v!B!uheads!v!B!usectors/track!v ^3oCURTO^3](c)wDEGN
   1/4AE!C
   +-uCURU"O-a-oCURaa^3^1CUR-o!ANOTDEGCURFCURe<<KCURP:^2D-!A+-NA^2-oUNOTDEG!yC/H/S!z!C
   ^3o"C,^3](c)wDEGN 1/4AENOTOAAy PC CURW-a-o BIOS
   -`aP:P:S:Q|aYEN?+-`S:PS:Ouw-oD-!A >>Puw-oD-YEN>>"AA-a
   1/4g-a-o<<n|]-A!C

   ^1ie+-uCURa-a-o"t^2I-oTH^2z-aI.sCURa|O"YEN!A^3o"C,^3](c)wDEGN
   1/4AE+-`^3y|"CUR@"C,S:xAZ!C -oYENy!ASCSI uw-oD-CURW-a-o physical
   geometry ,o FreeBSD CURW-a-o disk blocks
   NOTOS:^1YENthuLAo:-a-o!C"AE^1eCURW!A 'Nuw-oD-CURW-oIDEGI+-K<<
   *-a-oAAU:CURAE|O"YEN!A"A"S|^3(c)O? *!yphysical
   geometry!z^3o-oO/-aF|e!C uw-oD->>s^3yDEGO(c)O>>!-a-o!yphysical
   geometry!z^3q+-`NOTO<<u:!G
   uw-oD-CURW(c)O"IYENI^3ICURp-aAAP:!"O|s(c)n,e(R)AE-a-o^3](c)wDEGN
   1/4AE(geometry)!C YENH IDE uw-oD-|O"YEN!AFreeBSD
   YENIYENH|s"uuw-oD-^3](c)w-a-oCURe|!NOTO C/H/S !A
   uM|O!AYENO/<<eYEN<<+-CURW-a-ouw-oD-|'N|bCUR-o^3!^1BS:@(R)E!A'N|UDEGEA`a'<<NOTDEG
   block CURe|! CURF!C

   -uYEN?Ao:Aa:-a-o|aCURe!A"a:^1eNOTO|b(c)o !ylogical geometry!z!X
   ^3oNOTO BIOS
   DEG>>'uuw-oD-(R)E(c)O+-o"`i-a-o^3](c)w!A"AYENBYENI"O"M(c)wuw-oD-|s"uCURe|!!C
   YENN(c)o FreeBSD NOTO+-A:YENI BIOS
   -a-oDEG>>'u^3](c)wE!A(c)OYENH|p|o"OAAy BIOS
   DEG>>'u"`i-a-o^3](c)wE<<O<<uYEN? 1/2T!A NOTOCURQCURA<<n!CCUR
   *"a:NOTO|PCUR@Auuw-oD-CURW|^3|hOS:@.~"t^2I-a-o+-!-ap!A
   YEN|I^3-L-YEN^2P:.+-A:YENICUR@P-a-ouw-oD-^3](c)wDEGN
   1/4AE(geometry)!A S:_<<h'N.||^3P:}
   3/4-:P:iCUR-L-YENhS:@.~"t^2I-a-oA:Y<<DEGYADCURF!C

   YENH SCSI uw-oD-|O"YEN!Auw-oD-^3](c)wDEGN 1/4AE(geometry)NOTOYENN
   SCSI YENdCURW-a-o extended translation(^3q+-`<<u:-a-oNOTO|^3
   1/4D-YENU: !S:support >1GB!"(CURa:'(c) 1GB
   YENHCURW(R)eP:q!A(c)IAth|u:|Wuu:) CURa:'(c)>>PS:_"OS:@"M(c)w!C
   |p-aGCUR-L-CURa:'(c)!A"-o>>o'N.|+-A:YENI N cylinders!B 64 heads!B
   32 sectors/track S:@NOTDEGuw-oD-^3](c)wDEGN
   1/4AE(geometry)!A^3o,IA?-a-o!yN!z
   NOTO<<u:uw-oD--a-o(R)eP:q(^3ae|`i!GMB)!CA|O"OCURl"O>>!!ACUR@Au 2GB
   uw-oD-A^3,ONOTO 2048 cylinders!B64 heads!B32 sectors/track!C

   |p-aG,O SCSI |^3CURa:'(c)"IYENI extended translation -a-o,U:!A
   (^3q+-`^3oOCURe|!|b MS-DOS
   "IYENICURW|^3NOTY"C,"i)!A"AYENBuw-oD-(R)eP:qCURj(c)o 1GB!A
   "-o>>ouw-oD-^3](c)wDEGN 1/4AE(geometry)'N.|"IYENI^1^3NOTO!G M
   cylinders!B255 heads!B"C-oIy 63 sectors(
   1/2D--a`.N!GCUR-L-NOTO!y64!z(R)@)!A
   ^3o,IA?-a-o!yM!zNOTO<<u:uw-oD--a-o(R)eP:q(^3ae|`i!GMB)|ADEG-L-YENH
   7.844238 (c)O+-oYENX-a-o
   1/4AEE^3a!I(c)OYENH!A^3oO"OCURl-a-o,U:!A|P 1/4ENOTO 2GB
   uw-oD-A^3,ONOTO 261 cylinders!B255 heads!B"C-oIy 63 sectors!C

   Y^1iCURW+-A?-a-oCUR-L-AA,N!A(c)INOTO FreeBSD
   |b|w,E(R)E(c)ODEG>>'u"`i-a-ouw-oD-^3](c)wDEGN 1/4AE(geometry)
   |^3DEGYAD-a-o,U:!A^3IA^2^3ae-a-o,N-ak^3q+-`NOTO|buw-oD-CURW<<O/YENssCUR@P:oCURpCURp-a-o
   DOS CURA^3IDEGI(partition)!C ^3o
   1/4ECUR@"O!A'NYENiYENHDEG>>'u"`iYEN? 1/2T-a-ouw-oD-^3](c)wDEGN
   1/4AECURF!A|OYENB!A |p-aGCUR-L-.QA:~A:o-duU"-oCURpP:o DOS
   CURA^3IDEGI-a-o,U:!AYENiYENHAH(R)EYENI partition editor "O(R)^3+-
   1/4YEN|!C(c)I-aIS:aYEN|-duU.iS:@-oo,oYENdAAXDEGEu{|!"IYENI!A(c)IAHS:ADEG-a?^3<<c,>>oYENIYEN|!C

   |^1YEN~(c)O!A|^3OS:KP:O|nYENI-a-oCURu"au{|!YENsDEGu!ypfdisk.exe!z!A
   ^3oOu{|!(c)n|b|U FreeBSD FTP -,(c)IYENu-oD--a-o tools
   YENO/?yCURU!A
   YEN|YENiYENHYENI"OS:a:YENXuw-oD-CURW"a:YENLS:@.~"t^2I(c)O"IYENI-a-ouw-oD-^3](c)wDEGN
   1/4AE!A uM<<a'NYENiYENH|b partition editor
   CUR-o?eCURJeeS:a:"`i-a-o"-o"C,^3](c)wDEGN 1/4AE'NYENiYENHCURF!C

   3.16. CURA^3I-oI-oD- 3/4-:(R)E|^3YENo|o"iP:U:!S

   |^3!AS:AYEN^2P:. 1/2T>>{S:A-a-o root CURA^3IDEGINOTO|b 1024
   cylinders CURS:CUR-o!AAAy BIOS
   YENiYENH+-q"a:CURCUR+-ODEGE(R)O:CURss!C(-a`.N!G^3oNOTO PC -a-o
   BIOS YEN\-`a"i!A|OCUR-L- NOTO FreeBSD -a-o)

   YENH SCSI uw-oD-|O"YEN!A^3q+-`NOTOS:a root (/)
   CURA^3IDEGI(c)n"`iuw-oD-^3I<<e+--a-o 1024MB (|p-aG|^3CURa:'(c)
   extended translation -a-o,U:!A "-o>>oNOTO^3I<<e+--a-o 4096MB !X
   ^3oAI 1/2D-DEGN|OCURWCUR@CURp,`)!C|O IDE
   uw-oD--a-o,U:!ANOTU^1iA^3-a-o<<hNOTO 504MB!C

   3.17. YENiYENH"IYENIth"C,-oI-oD--oTH^2zu{|!(disk managers)(c)O!H

   FreeBSD YENiYENHYENI Ontrack Disk Manager "AYENB^1BS:@YEN?+-`!A
   |U:(c)o"a:YENL-a-o disk manager
   <<hCUR-L-|bYEN?|!CURa:'(c)CURS:|C!C

   Y 3/4aAuuw-oD-YENu,E FreeBSD !A"-o>>o'NCUR-L-YENI|A,E disk manager
   CURF!C YENunS:auw-oD-^3](c)wNOTDEG BIOS
   (c)O-`aS:`i"`i-a-o^3ICURj-aAAP:!!A"-o>>o FreeBSD
   'NYENi-oaYENX^1e>>UCURWYENi"IYENI-a-o-aAAP:!CURF!C
   |p-aG!AYEN?|b"IYENI-a-oNOTOYENj| MFM +-+-"iYENd-a-oAA|!uw-oD-!A
   "-o>>o'N>>Yn|b FreeBSDCUR-oS:@ cylinders NOTUAo:^3](c)wCURF!C

   |p-aG.Q|b-oI-oD-CURW"IYENI FreeBSD
   (c)MYENtYEN~-a-oS:@.~"t^2I!ACUR]YENiYENHCUR-L-,E disk manager!A
   YENun 1/2T(c)w FreeBSD
   -a-o+-ODEGECURA^3IDEGI,o"a:YENLS:@.~"t^2I-a-o slice
   ^3-L-|`i(c)oP:}(c)l-a-o 1024 cylinders
   CUR-o'NYENiYENHCURF!C|p-aGS:ANOTU.i|aDEG-a(c)u-a-o,U:!ACUR@O 20MB
   -a-o+-ODEGECURA^3IDEGIA^3,O'NDEG-:YENICURF!C

   3.18. FreeBSD |w,ES:^1^2|<<a<<P:} 3/4-:!A|yNOTO^1q,-L-<<o>>!
   !S:Missing Operating System!"^3oNOTO<<c,>>oCURF!H

   ^3q+-``i|]YENX|b FreeBSD CURI DOS
   (c)I"a:YENLS:@.~"t^2I|buw-oD--a-o ^3](c)wDEGN
   1/4AE(geometry)CURW-a-o^3W^1-o|^3NOTU 1/2A:!C,N-akNOTO<<,E!A|yNOTO
   1/2D-.O CURWz-a-oNOTUAo:^3^1,`"BAEJ"ODEGu!C

   3.19. NOTDEGCURDEG>>o 3/4-: 3/4^1CURW|h<<P:} 3/4-:-oTH^2zu(boot
   manager)YENX^2{CURF F? ^3oO?i^3aeue+-!A
   |y<<oCUR-L-.||UDEGE,o^1L|OA:~A:oP:} 3/4-:(c)O!H

   ^3oO-g-aNOTNOTOYEN>>CURaaCURW+-(c)O'-L--a-oYENtYEN~CUR@ODEGYADCURF!A`i|]|b(c)o
   BIOS CURW,o FreeBSD CURW+-"aAa:-a-ouw-oD--a-o ^3](c)wDEGN
   1/4AE(geometry) "ACUR-L-CUR@P!C YS:Auw-oD-(c)I BIOS CURa:'(c)
   cylinder translation (^3q+-`.|^3Q 1/4D-NOTDEG !S:support
   >1GB(CURa:'(c) 1 GBYENHCURW(R)eP:q)!"-a-o,U:!A
   ,O,ONOTYS:oS:iNOTUAo:^3](c)w!A"A<<,E FreeBSD!C

   3.20. |w,E FreeBSD (R)E!A>>Yn|w,ES:^1 3/4a-a-o sources P:U:!H

   CUR@-e"O>>!!A^3oNOTOYENICUR-L-uU-a-o!CuM|O!AS:UI+-j-P<<O/A:^3+-z-a-o
   source |U:CURO:n,E
   base(YEN]S:tCURFYEN>>CURaaCURCUR(c)O'-L--a-oCUR@"C,AE(R)
   *)!BYENHCURI sys (kernel -a-o source AE)!C
   Ao:uM!AS:@.~"t^2IYEN>>"^1BNOTOCUR-L->>Yn,E source AE!A|yNOTO
   config(8) ^3oO kernel^3](c)wu{|!<<h>>Yn src !C Y"S,E kernel -a-o
   source AE!ACUR'uMYENiYENHYENI"a:YENL|aCURe^3z^1L NFS +-
   3/4,u:-a-oDEGssAA-aAE(R) *"t^2I!A "O 1/2sA:P:u{|!!C |yYENN(c)o
   kernel-source YEN>>"-a-o"i!AS:UI<<O/A:^3CUR-L-n-a 1/2+-u mount |b
   /usr/src!A ^3I|nNOTOYENI symbolic link(DEGN 3/4\ ln(1)) +-N+-
   3/4,u:-a-o,o(R)|!A^3](c)w^3su^2"`i/usr/src YENO/?y!C

   |b 3/4-: 3/4^1CURW-a 1/2+-u,E|^3 source "AYENBAA,NNOTUAo:
   1/2sA:P:^1Lu{!A^3o 1/4ECURlCURe<<aCURE-AA FreeBSD
   .|"O+-oCURe<<K|h!C

   YS:NCURF,ENOTUAo: source -a-o,U:!AYENiYENH"AE<<aYENI sysinstalll
   (FreeBSD 5.2 CURS:<<e-a(c)YEN>><<hNOTO /stand/sysinstall)
   "O,E,E!A?i^3ae!GConfigure !-: Distributions !-: src!C

   3.21. >>Yn<<.s build kernel P:U:!H

   |b<<U:CUR[<<U:CUR[YENH<<e!A`iYEN>><<.s build kernel |b FreeBSD
   |w,E^1Lu{CURCUR!A
   NOTOu'^1iYEN^2>>Y-a-o"BAEJCURS:CUR@!C|yYENO/<<e|'NCUR-L-YENI^3o>>o^3A.D-CURF!A
   YENO/<<eYENDn+-`"-L--a-o-a(c)YEN>>^3-L-"IYENIS:oCURIu 1/2-a-o
   kernel ^3](c)w<<u:YENO!C FreeBSD 4.X(S:tCURS:<<e-a(c)YEN>>)!A|b
   FreeBSD +-ODEGE'-L-YENU:,^1(boot:)(R)E!A"IYENI "-c" flag
   'N.|P:iCURJ^3](c)wue+-!A"O^1i kernel S:@+-`"-L--a-o ISA
   YENd^2O,`^3](c)w!C |O FreeBSD
   5.X(S:tCURS:<<a-a(c)YEN>>)-a-o,U:!A<<hNOTOYENHS:o"a 1/4u(c)E-a-o
   "hints" ^3](c)wCURe|!!C

   |p-aG.QS:o,`NOTU RAM -a-o"IYENI!BAYuuP:}
   3/4-:NOTyu{!A"-o>>o<<O/A:^3!G.s-a-o kernel
   ^3](c)wAEYENunYEN]S:tS:A>>Yn-a-oAAXDEGEu{|!!A uM<<a<<.s
   1/2sA:P:!B|w,E kernel "A<<P:} 3/4-:!CuM|O(c)O!A^3oAI^1iCURj|h
   1/4AE-a-o"t^2I"O>>!!A ^3oCUR-L-CUR@(c)wNOTOYEN^2n-a-o!C

   3.22. +-K 1/2X 1/2s 1/2X,O+-A:YENI DES!BBlowfish (c)I MD5
   -a-othCUR@-oO/!H,O<<c,>>o^3](c)w(c)O!H

   FreeBSD ^1w^3]-a-o+-K 1/2X 1/2s 1/2XCURe|!NOTO+-A: MD5!C 'N+-K
   1/2X 1/2s 1/2XCURe|!|O"YEN!AMD5
   CURe|!CUR@-e^3Quo/NOTDEGCURnP:C,^2I UNIX -a-o DES
   CURe|!,uNOTDEG|wYENth!C
   uM|O!AY|^3>>Yn|b"IYENIAAAo^1O(,uCUR-L-|wYENth-a-o+-K 1/2X 1/2s
   1/2XCURe|!-a-o)!ADES +-K 1/2X 1/2s 1/2XCURe|!CUR@
   1/4EYENiYENH"IYENI!C (Y"IYENI sysinstall (R)E|^3?i 3/4U:
   !S:crypto!" (R)MYENo!A(c)INOTO+-q source CUR-o 1/2sA:P:|w,E) |^3,E
   crypto -a-o,U:!Acrypto libraries CUR]CURa:'(c)S:o|wYENth-a-o
   Blowfish  1/2s 1/2XCURe|!!C

   +-K 1/2X 1/2s 1/2X-a-oCURe|!NOTOYENN /etc/login.conf CUR-o-a-o
   !S:passwd_format!" A:ae|`i"O"M(c)w-a-o!C,OA:ae^3](c)wE!A(Y|^3,E
   crypto -a-o,U:)YENiYENHNOTO !S:des!" (c)I !S:blf!"
   (c)INOTO`iYEN>>-a-o !S:md5!"!C ,O+-! 1/2D-DEGN 3/4\ login.conf(5)
   >>!(c)u!C

   3.23. NOTDEGCURDEG>>oP:} 3/4-:-oICURuP:}"`iCUR@YENb!A'NYENX^2{
   Probing Devices... -a-oue+-DEGT(R)S:!AuM<<a'NDEG+-|iCURF!H

   Y 3/4-: 3/4^1CURW|^3,E IDE CURP:+--a-o Iomega Zip(R) (c)INOTO
   Jaz(R) -a-o,U:!A |]NOTDEG^3o"C,^3]^3AEYENi-`a,oP:}
   3/4-:CURu|^3NOTU 1/2A:!A 1/2D-YENy(R)^3+- 1/4^3o"C,^3]^3AE|A<<,O!C
   .i
   3/4aOS:@.~"t^2I,E|n<<a!A'NYENiYENHS:a^3o"C,^3]^3AE+-u|^YENh"IYENICURF!C
   S:AE+-ae^3oAI|bCURe<<a release -a-o FreeBSD
   YENiYENHAo+-o^1y(c)^3,N"M!C

   3.24. "t^2I,ES:^1"A<<P:} 3/4-:<<a!ANOTDEGCURDEG>>o<<oYENX^2{
   !S:panic: can't mount root!"!H

   ^3oO?u>>~NOTO|]NOTDEG+-ODEGE-oIDEGI,o kernel
   "a-aI^1i-oI-oD-,E,m-a-o>>{-a 3/4CUR-L-NOTU|P!C
   ^3q+-`^3oDEGYAD.|uoYENI|b|^3"aAu IDE
   uw-oD--a-o"t^2I!ACURn|p!Guw-oD- Jumper ^3](c)wNOTDEG Master!B
   (c)INOTO"a+-o/ IDE +-AE 1/2u|UYENu^3s+-uCUR@Auuw-oD-!A|yNOTO,E
   FreeBSD "-oAuP:} 3/4-:uw-oD-!A <<o+-u|b Secondary IDE +-AE
   1/2uCURW!C |p|^1CUR@"O!A|bP:} 3/4-:(R)E.i kernel <<u:(c)w^2A:CURGO
   IDE +-+-"i 3/4^1-a-o^2A:CUR@O-oI-oD- 3/4-: ad2!A
   +-ODEGE-oIDEGI<<o>>{NOTDEG"t^2INOTO,E|b
   ad0(BIOSDEG>>'u-a-o^2A:CURGAuuw-oD-)!I DEG>>'uS:^1,E,m<<a!Akernel
   ,OuUS:a+-ODEGE-oIDEGI(c)O>>{NOTDEG-a-oP:} 3/4-:uw-oD-(ad0) mount
   DEG_"O!A"AE^1eCURWA^3,ONOTO ad2
   CUR~^1i!A(c)OYENH'N.|YENX^2{CURW+--a-o?u>>~DEGT(R)S:CURF!C

   ,N-ak|pCURU!A 1/2D-?i 3/4U:"a:CURCURCUR@-oO/CURe|!'N|n!G

    1. <<P:} 3/4-:"A|bYENX^2{!yBooting kernel in 10 seconds; hit
       [Enter] to interrupt!z '-L-YENU:-a-o(R)EO!A<<o:CURU EnterAa:!C
       ^3o 1/4ECURl'N.|P:iCURJ boot loader ue+-!G

       1/2D-?eCURJ set root_disk_unit="disk_number"
       ^3o,I-a-o!ydisk_number!z 1/2D-"I
       3/4U+-!-ap'<<|"NOTUAo:YENN,^1!G Y FreeBSD
       uw-oD-NOTO^3](c)w,E|b Primary IDE +-u 1/2u-a-o
       Master!A'N^3]NOTDEG 0 !F YNOTO Primary IDE +-u 1/2u-a-o
       Slave!A'N^3]NOTDEG 1!F YNOTO Secondary IDE +-u 1/2u-a-o
       Master!A'N^3]NOTDEG 2!F YNOTO Secondary IDE +-u 1/2u-a-o
       Slave!A'N^3]NOTDEG 3!C

       +-uuU 1/2D-|A?eCURJ boot!AuM<<a"t^2IA^3,O'NYENiYENHYEN?+-`P:}
       3/4-:CURF!C

       Yn"C|,P:}
       3/4-:^3-L-|UDEGE^3](c)w!A|OCUR-L-YEN^2"C|,^3-L-YEN'CUR@|,!A"-o>>o'N|b
       /boot/loader.conf.local AE(R) *CUR-oYEN[CURW
       root_disk_unit="disk_number" ^3o|ae
       (.iuM!A!ydisk_number!znS:i|"NOTUAo:YENN,^1)

    2. S:a FreeBSD uw-oD-S:i+-u"`i Primary IDE +-u
       1/2uCURW!A|p|^1CUR@"O'NYENiP:P:S:Q"IYENI!C

   3.25. DEGO 3/4D-AAe^3ICURj"iNOTDEG|hCURO:!H

   CUR@-e i386  3/4-: 3/4^1CURW^3I|hYENiCURa:'(c)"`i 4
   GB(gigabytes)!C |O|U FreeBSD 4.9 CURI 5.1 YENiYENHP:}(c)l"IYENI
   pae(4) "OCURa:'(c)S:o|h-a-oDEGO 3/4D-AAe!C |^3Ao:^3oAI!A>>Yn|b
   kernel ^3](c)wAECUR-oYEN[CURJCURU|CCUR-o(R)e"A<<.s 1/2sA:P:
   kernel!ACUR~-`a"IYENI PAE!C

 options       PAE

   FreeBSD |b pc98  3/4-: 3/4^1CURW^3I|h<<hYENuCURa:'(c) 4 GB
   !A|OYENBCUR-L--`a"IYENI PAE!C |b Alpha  3/4-: 3/4^1CURW!ADEGO
   3/4D-AAe"iCURe+-nuo/(c)O"IYENI-a-o<<NOT,^1CURa:'(c)u{<<
   *|O(c)w!A^3oAI 1/2D-DEGN 3/4\ (c)O"IYENI-a-o Alpha
   uwAAe^3W(R)ae-ai!C|U:(c)o"a:YENLNOT[-oc-a-o FreeBSD ^2z 1/2
   *CURW^3I|hYENi"IYENI-a-oDEGO 3/4D-AAe!A|^3,u|h-a-o"i!C

   3.26. AE(R) *"t^2I^3ICURj"iNOTDEG|hCURO:!H

   'NAE(R) *"t^2ICURe+-!A^2z 1/2 *CURW-a-o"iNOTO^3I|h"`i 8TB(2G
   blocks)!A (c)INOTO"IYENICUR-o(c)w 8K block CURjCURp(R)E!A"iNOTO
   16TB!C ^1e>>UCURW!AYENO/<<e^3nAAe"IYENICURW"iYENu-`aYENI"`i 1 TB!A
   uM|O|p-aGNOTO|^3YENt|aeS:i^3y^1LAE(R) *"t^2I!A"-o>>o^1F"`i 4TB
   -a-oYENO/ 1/4D-NOTOYENi|ae-a-o (CUR]|^3CURH|"YEN\^1L)!C

   ^3aeCUR@AE(R) *-a-oCURjCURpCURe+-!ADEG^2|p block YENH 4K
   S:@^3W^1-o-a-o,U:!A <<h^3ICURjNOTOAI-an 1G blocks(4TB)!C

   Table 3-1. AE(R) *CURjCURp-a-o^3ICURj"i

   +----------------------------------------------------+
   | AE(R) *"t^2I block CURjCURp | works  | should work |
   |-----------------------------+--------+-------------|
   | 4K                          | 4T-1   | >4T         |
   |-----------------------------+--------+-------------|
   | 8K                          | >32G   | 32T-1       |
   |-----------------------------+--------+-------------|
   | 16K                         | >128G  | 32T-1       |
   |-----------------------------+--------+-------------|
   | 32K                         | >512G  | 64T-1       |
   |-----------------------------+--------+-------------|
   | 64K                         | >2048G | 128T-1      |
   +----------------------------------------------------+

   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.

   block CURjCURp|p-aGNOTO 8K (c)IS:oCURj!AAE(R) *"t^2I block 
   1/4AEYENO/.|^3Q"i|b 2G-1 !A|y^1e>>UCURWA^3,O>>!"iNOTO 1G-1
   CUR~^1i!A|]NOTDEG+-A:YENI 2G-1 block -a-oAE(R) *"t^2I.|
   3/4EPCUR@"C,DEGYAD!C

   3.27. NOTDEG|o|b+-ODEGE.s-a-o kernel (R)E!ANOTY"`i
   !S:archsw.readin.failed!" ?u>>~DEGT(R)S:!H

   `i|]YENX|bS:A-a-o world YENHCURI kernel "ACUR-L-|P"B!AA|"O!Gkernel
   YENI 4.11!A |O world <<oNOTO 4.8!A^3o 1/4ENOTO.||^3DEGYAD-a-o!C 
   1/2D-|A|, 1/2T>>{!ANOTOS:_|^3YENH make buildworld CURI make
   buildkernel "OYEN?+-`S:o.s kernel!C

   |b+-ODEGE loader CURS:<<e!A.|NOTY"`i "|"
   ^3oO^2AA,^1|bA`aDEGE!A^3o(R)EYENiYENH<<o:YENo|oAa:CURCURA_!A
   uM<<a|A<<u:(c)wn,u:CURJthO kernel "OP:} 3/4-:!C

   3.28. !S:security profiles!" NOTO<<u:CURDEG>>o!H

   A !S:security profile!" is a set of configuration options that
   attempts to achieve the desired ratio of security to convenience
   by enabling and disabling certain programs and other settings. For
   full details, see the Security Profile section of the Handbook's
   post-install chapter.

   3.29. |bP:} 3/4-:(R)E!A?i 3/4U:"IYENI ACPI <<h|b|w,E^1Lu{'N+-
   3/4CURF!A,O<<c,>>o?`i!H

   ,O,ONOTYAo:^3NOT ACPI support!C .i|b,u:CURJ
   bootloader(R)E!A<<o:CURU-aAAYENOAa:!C "t^2I.|AAaYENU:

 OK

   ^3o(R)E?eCURJ

 unset acpi_load

   +-uuUYEN'

 boot

   YENHA:~A:oP:} 3/4-:!A^3o 1/4ECURlA^3,O'NYENiYENHCURF!C

     --------------------------------------------------------------

                     Chapter 4 uwAAeCURa:'(c)CURe+-

4.1 CUR@-eDEGYAD

   4.1.1. S:U.Q^2O,E|UCURv-a-o FreeBSD  3/4-:
   3/4^1!A|^3th"C,<<NOT,^1!B<<~uP!B^3W(R)aeNOTOCURa:'(c)u{<<
   *^3I|n-a-o(c)O!H

   4.1.1. S:U.Q^2O,E|UCURv-a-o FreeBSD  3/4-:
   3/4^1!A|^3th"C,<<NOT,^1!B<<~uP!B^3W(R)aeNOTOCURa:'(c)u{<<
   *^3I|n-a-o(c)O!H

   |^3Ao:^3oAI!A|b FreeBSD DEGQ 1/2 *DEGICURW(R)E+-`|^3CURHDEGQ 1/2
   *!CAo:uMuwAAe"O'<<^3t<< *<<U:S:O:!A
   YENi-`aAH(R)E|^3.s^3W(R)ae!B.s^2-L-<<~YENX^2{!AuM|O^3o"C,^3-L-|bS:UI.N(R)AECURS:CURCUR!A
   S:UI CUR'uM
   +-j-P<<O/A:^3!G|b,ssDEGY|^3Ao:^3I.s^3W(R)aeuwAAe-a-oCURa:'(c)DEGYADCURS:<<e!A
   1/2D-YENyDEGN 3/4\ FreeBSD 9.1 (c)I 8.3-a-oCURa:'(c)uwAAe|C-ai!A
   (c)INOTO.j'MDEGQ 1/2 *DEGI-a-oAACURaa^3^1!A
   CUR]^3\!ACURWP:gCUR~e<<eYEN(c)|^3CURHDEGQ 1/2
   *^1LS:A(c)OnDEGY-a-ouwAAe!C

   |p-aGnS:a:|^3Ao:uS:DEGO<<NOT^1q,-L-CURe+-!A 1/2D-"`i
   FreeBSD-mobile uS:DEGO<<NOT^1q,-L-DEGQ 1/2 *DEGI!C CUR-L-uM!A'N"`i
   FreeBSD-questions DEGQ 1/2
   *DEGI!A(c)INOTO-S(c)wuwAAe^3W(R)ae(CURn|p pc98,
   Alpha)-a-o+-MA:YDEGQ 1/2 *DEGIS:a!C

     --------------------------------------------------------------

4.2 uwAAeNOT[-ocCURI CPU

   4.2.1. FreeBSD |^3CURa:'(c) x86
   CURS:YEN~-a-ouwAAeNOT[-ocYENYENxP:U:!H

   4.2.2. FreeBSD CURa:'(c) CPU ^1i-oU|hCURu^3B^2z(SMP, Symmetric
   Multiprocessing)P:U:!H

   4.2.1. FreeBSD |^3CURa:'(c) x86
   CURS:YEN~-a-ouwAAeNOT[-ocYENYENxP:U:!H

   |^3-a-o!AFreeBSD YENO/<<eYENiYENH|b Intel x86 and DEC (^2{|b-a-o
   HP-Compaq) Alpha NOT[-ocCURW+-^1BS:@!C|U FreeBSD 5.0
   CURS:<<a-a-o-a(c)YEN>>!A<<h YENiCURa:'(c) AMD64 CURI Intel EM64T,
   IA-64 YENHCURI Sparc64(R) NOT[-oc!C YEN
   1/4"OYENYENxCURa:'(c)CURWAU.||^3 MIPS(R) CURI PowerPC(R)!A^2O,`
   1/2D-CURAS:ODEGN 3/4\ FreeBSD MIPS porting P:l>> 1/4 1/2 * 3/4A
   (c)I FreeBSD PowerPC porting P:l>> 1/4 1/2 * 3/4A!C
   CUR@-e|O"YEN!A.s-a-ouwAAeNOT[-ocYENYENxCURe+-!A^3-L-NOTO"`i
   FreeBSD non-Intel platforms porting P:l>> 1/4 1/2 * 3/4A DEGQ 1/2
   *!C

   YS:A 3/4-:
   3/4^1CUR-L-NOTOYENHCURWNOT[-oc(c)INOTOCURn,u(c)_-S-a-o!A|O.QYENss"e,O,ONOTY
   BSD -a-oAA]CURO!A S:UI<<O/A:^3S:AYENiYENH|O 1/4{"IYENI NetBSD (c)I
   OpenBSD!C

   4.2.2. FreeBSD CURa:'(c) CPU ^1i-oU|hCURu^3B^2z(SMP, Symmetric
   Multiprocessing)P:U:!H

   |^3-a-o!C SMP |b FreeBSD 5.2 ^1w^3]-a-o
   kernel(GENERIC)CURw|^3+-ODEGE!C

   |b FreeBSD 5.3 n release
   (R)E!ASMPNOTUAo:^3](c)wCUR]NOTO^1w^3]'N|^3+-ODEGE!C
   uM|O!A|bCUR@"C,,u.s<<NOT-a-o 3/4-: 3/4^1(^1^3NOTO
   emt64)CURW<<oCURS|^3"C,DEGYAD!A
   (c)OYENHAUNOTO"M(c)w|bNOTUAo:DEGYAD!B|wYENthA:^3ADYEN
   1/4Ao,N"M<<e!AYENyAo:^3NOT SMP -a-oNOTUAo:+-ODEGE!C
   ^3oAI!AYEN?NOTO FreeBSD 5.4 (c)OAuYENy|O 1/4{-a-oCURe|V!C

   FreeBSD 4.X -a-o,U:!A^1w^3]-a-o kernel "A"S|^3+-ODEGE SMP!A
   |]|^1!AYEN^2P:.nS:a options SMP YEN[CURJ kernel ^3](c)wAE"A<<.s
   1/2sA:P:CUR~-`a+-ODEGE!C |U:(c)oAU|^3th"C,NOTUAo:^3](c)wn(c)nCURJ
   kernel ^3](c)wAE!A 1/2D-DEGN 3/4\/sys/i386/conf/LINT!C

     --------------------------------------------------------------

4.3 uw-oD-!B-oI+-a 3/4-:YENHCURIYENu-oD-!BDVD!B?N?y 3/4-:

   4.3.1. FreeBSD YENiCURa:'(c)th"C,-oO/Ath-a-ouw-oD-(c)O!H

   4.3.2. CURa:'(c)th"C, SCSI YENd!B^3]^3AE(c)O!H

   4.3.3. CURa:'(c)th"C,-oI+-a 3/4-:(c)O!H

   4.3.4. FreeBSD CURa:'(c)-oI+-a|UDEGE'<<+-a 3/4-:P:U:!H

   4.3.5. FreeBSD YENiCURa:'(c)th"C,-oO/Ath-a-oYENu-oD- 3/4-:(c)O!H

   4.3.6. FreeBSD CURa:'(c)th"C,YENu-oD-?N?y
   3/4-:-a-oAAXDEGEu{|!(c)O!H

   4.3.7. FreeBSD CURa:'(c) Iomega Zip P:U:?

   4.3.8. FreeBSD |^3CURa:'(c) Jaz!BEZ
   CURI"a:YENLAth|u:-a-oAH"-oICURuP:U:!H

   4.3.1. FreeBSD YENiCURa:'(c)th"C,-oO/Ath-a-ouw-oD-(c)O!H

   FreeBSD ^3-L-CURa:'(c) EIDE CURI SCSI CURP:+--a-ouw-oD-(YENHCURI
   SCSI YENd!A 1/2D-NOTYCURUCUR@,`>>!(c)u) YENHCURI !S:Western
   Digital!" CURP:+--a-ouw-oD- (MFM!B RLL!B ESDI!A.iuMYEN]S:t
   IDE)!ACUR-L-^1L|^3CUR@"C,CURO: 1/4AE-a-o ESDI
   '^1CURu^2O-a-o(<<NOT,^1!GWD1002/3/6/7) YENi-`auL-akYEN?+-`^1BS:@!C

   4.3.2. CURa:'(c)th"C, SCSI YENd!B^3]^3AE(c)O!H

   1/2D-DEGN 3/4\ FreeBSD -a-ouwAAeCURa:'(c)-ai( 9.1 (c)I 8.3)

   4.3.3. CURa:'(c)th"C,-oI+-a 3/4-:(c)O!H

   FreeBSD CURa:'(c) SCSI CURI QIC-36 (QIC-02 CURP:+-)
   ^3W(R)ae-a-o-oI+-a 3/4-:!C |P(R)EYEN]S:tCURF 8-mm (CUR]'NNOTO
   Exabyte) CURI DAT -oI+-a 3/4-:!C

   |^3"C,|'A-a(c)YEN>>-a-o 8-mm -oI+-a
   3/4-:"ACUR-L-NOTOS:^1YENthNOTU(R)e(c)o SCSI-2 ^3W(R)ae!A
   (c)OYENHYENi-`a|b FreeBSD CURW-ai^2{CUR-L-NOTO<<U:|n!C

   4.3.4. FreeBSD CURa:'(c)-oI+-a|UDEGE'<<+-a 3/4-:P:U:!H

   FreeBSD YENiYENHYENI ch(4) CURW+-(c)O|C-a-o 3/4-:-oO/!A.fDEGt
   chio(1) <<u:YENO!A "O"IYENI SCSI -oO/Ath-a-o|UDEGE'<<+-a
   3/4-:!A^2O,`^3!CURA 1/2D-DEGN 3/4\ chio(1) >>!(c)u!C

   If you are not using AMANDA or some other product that already
   understands changers, remember that they only know how to move a
   tape from one point to another, so you need to keep track of which
   slot a tape is in, and which slot the tape currently in the drive
   needs to go back to.

   4.3.5. FreeBSD YENiCURa:'(c)th"C,-oO/Ath-a-oYENu-oD- 3/4-:(c)O!H

   YENunNOTO|^3CURa:'(c)-a-o SCSI YENdCURW(c)O+-u-a-oYENoCUR@ SCSI
   YENu-oD- 3/4-:^3-L-|^3CURa:'(c)!C

   |^1YEN~!ACUR]CURa:'(c)CURU|C-a-oYENu-oD- 3/4-:!G

     * Mitsumi LU002 (8bit), LU005 (16bit) CURI FX001D (16bit 2x
       Speed)

     * Sony CDU 31/33A

     * Sound Blaster <<D SCSI CURP:+--a-oYENu-oD- 3/4-:

     * Matsushita/Panasonic YENu-oD- 3/4-:

     * NOTU(R)e ATAPI ^3W(R)ae-a-o IDE CDROMs

   NOTU^1i(c)o SCSI  3/4-:-oO/|O"YEN!A"a:YENL<<D SCSI -a-oYENu-oD-
   3/4-:^3-L-NOTOCURn,u-oC!A |^1YEN~!A|^3"C, ATAPI
   -oO/Ath-a-oYENu-oD- 3/4-:YENi-`auL-akP:P:S:Q^1BS:@

   Daemon News YENHCURI FreeBSD Mall (c)Ouo|ae-a-oYEN?|! FreeBSD
   YENu-oD-YENHCURI?N?yYENI-a-o 1/4v^1^3AE(ISO)!A ^3-L-YENiYENH-a
   1/2+-uYENI(c)oP:} 3/4-:YENu-oD-"IYENI!C

   4.3.6. FreeBSD CURa:'(c)th"C,YENu-oD-?N?y
   3/4-:-a-oAAXDEGEu{|!(c)O!H

   FreeBSD CURa:'(c)YENo|oNOTU(R)e ATAPI  1/4D-.C,-a-o IDE CD-R (c)I
   CD-RW YENu-oD-?N?y 3/4-:!A ^2O,` 1/2D-DEGN 3/4\ burncd(8)
   >>!(c)u!C

   FreeBSD CUR]CURa:'(c)YENo|o SCSI CD-R (c)I CD-RW YENu-oD-?N?y
   3/4-:!C  1/2D-YENI port (c)I packag  3/4-:"i"O|w,E!B"IYENI
   cdrecord !A "A 1/2T(c)w+-z-a-o kernel CUR-o|^3+-N
   pass^3]^3AECUR@"O: 1/2sA:P:|bCUR-o!C (^1w^3]-a-o kernel.GENERIC
   ^3-L-.||^3 device pass ^3oNOTq)

   4.3.7. FreeBSD CURa:'(c) Iomega Zip P:U:?

   FreeBSD CURa:'(c)YEN~+-u|!-a-o SCSI CURI ATAPI(IDE) CURP:+--a-o
   Iomega Zip!C CUR-L-^1L SCSI ZIP YENu-`a^3Q^3]NOTDEG SCSI ID 5
   (c)INOTO 6 CUR~YENiYENH^1BS:@!A|y|p-aG SCSI YENdCURW-a-o BIOS
   CURa:'(c)YEN|!AS:ANOTAE|U:YENiYENHYENIYEN|"OP:} 3/4-:!C S:UICUR-L-
   3/4aa+-othCUR@P:oYENdYENiYENHS:aYENd-a-o ID ^3]|bDEG-L-CURF 0 (c)I
   1 YENHYEN~-a-o|aCURe|OP:} 3/4-:|"YEN\!A |]|^1!A|p-aG.QS:i SCSI ID
   -a-o,U:!A 1/2D-DEGEYEN^2DEGN 3/4\,O<<NOT,^1-a-o>>!(c)uCURaYENU!C

   FreeBSD |P(R)ECUR]CURa:'(c) Parallel Port Zip-oI-oD- 3/4-:!C
   1/2D-AENOTd kernel ^3](c)wAENOTOS:_|^3!G scbus0!B da0!B
   ppbus0!AYENHCURI vp0 ^3o"C,AAXDEGEu{|! (^1w^3]-a-o GENERIC kernel
   DEG-L-CURF vp0 "SYEN]P:iYENh!A"a:YENLCURT-aI^3-L-.||^3)!C
   YEN[CURF^3o'XOAAXDEGEu{|!CURS:<<a!AParallel Port Zip 'N.||"NOTDEG
   /dev/da0s4!C

   ^3o(R)E!A'NYENiYENHYENI^1^3NOTO mount /dev/da0s4 /mnt (c)I (DOS
   AE(R) *"t^2I)mount_msdos /dev/da0s4 /mnt CURS:Ath-a-o<<u:YENO"O+-
   3/4,u:!BAA-a 1/4g!C

   CUR]YENiYENHDEGN 3/4\CURU+-|^3Ao:AH"-oICURu
   ^3!CURA!AYENHCURI(c)a"u-oD-!BAH"-oD--a-o!y(R)ae|!CURAE!zDEGQ 1/2 *
   -a-o^3!CURA

   4.3.8. FreeBSD |^3CURa:'(c) Jaz!BEZ
   CURI"a:YENLAth|u:-a-oAH"-oICURuP:U:!H

   YENiYENHDEGU!ADEG-L-CURF IDE -a-o EZ drive
   YEN~!A"a:YENL-a-oA^3,O^3-L-NOTO SCSI CURP:+-!A (c)OYENH|b FreeBSD
   CURW^3-L-.|YENH SCSI uw-oD-"O^3B^2z!C

   .iuM!AS:AYEN^2P:. 1/2T(c)w|bP:} 3/4-:(R)E!A^3o"C,^3]^3AE-a-o^1q.
   1/2NOTOYEN'P:}-a-o!A YENH<<KAAy FreeBSD YENiYENHDEG>>'u"`i!C

   |p-aG|b-oI-oD-^1BCURCUR-aNOT-oACURCUR!AnS:o'<<-oICURu-a-o,U:!A
   DEGO+-oYENyNOTYCUR@CURU mount(8)!Bumount(8)!B
   YENHCURI(SCSI-a-o,U:)camcontrol(8) (c)I atacontrol(8) AU|^3 FAQ
   <<a+-|^3Ao: "IYENI(c)a"u-oD-!BAH"-oD--a-oDEGQ 1/2 * !C

     --------------------------------------------------------------

4.4 Aa: 1/2L!B.AE^1<<

   4.4.1. FreeBSD |^3CURa:'(c) USB Aa: 1/2LP:U:!H

   4.4.2. YENj|-a-o bus .AE^1<<!An<<c,>>o^3](c)w(c)O!H

   4.4.3. PS/2 (!S:mouse port!" (c)I
   !S:keyboard!")-a-o.AE^1<<n<<c,>>o^3](c)wCUR~|n(c)O!H

   4.4.4. |p-aGCUR-L-YENI X Window
   Ao^1O-a-o,U:!ACUR]YENiYENHYENI.AE^1<<P:U:!H

   4.4.5. |bCURaa|r 1/4O|!-a-o console
   Ao^1On<<c,>>oYENI.AE^1<<"ODEGAAP:KCURaa|r(c)O!H

   4.4.6. S:U.AE^1<<CURW+--a-o-ou 1/2u:!B-ou 1/2u:<<o:P:s!AYENiYENH|b
   console CURW"IYENIP:U:!H

   4.4.7.
   n<<c,>>o|buS:DEGO<<NOT^1q,-L-CURW"IYENI.AE^1<<!By,n^2y!BA:^2+-+--aO(c)O!H

   4.4.1. FreeBSD |^3CURa:'(c) USB Aa: 1/2LP:U:!H

   FreeBSD (CUR *"a:NOTO|^3CURa:'(c) USB keyboards!C Enable USB
   support in /etc/rc.conf.

   Y|^3P:} USB Aa: 1/2LCURa:'(c)|OYENB|P(R)E+-uCURW AT ,o USB Aa:
   1/2L-a-o,U:!A"-o>>o AT Aa: 1/2L.|AAU:|" /dev/kbd0!A|O USB Aa:
   1/2L<<hNOTO /dev/kbd1!C|p-aGYENu+-u USB Aa: 1/2L!A"-o>>oYEN|'NNOTO
   /dev/ukbd0 AAo!C

   |p-aG.Q|b console CURW"IYENI USB Aa:
   1/2L-a-o,U:!A"-o>>oYEN^2P:.^3](c)w console <<u:(c)wYENI USB Aa:
   1/2L!C YENiYENH|b"t^2IP:}
   3/4-:u{S:C,(R)E!AYEN[CURWCURU|C<<u:YENO!G

 # kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/null

   -a`.N!GYYENu|^3 USB Aa: 1/2L-a-o,U:!ACUR]'NNOTO /dev/ukbd0!A
   "-o>>o 1/2D-S:iYENICURU|C<<u:YENO!G

 # kbdcontrol -k /dev/ukbd0 < /dev/ttyv0 > /dev/null

   <<O/A:^3!GYENiYENHS:aCURWz<<u:YENO(c)nCURJ /etc/rc.i386 !C

   ^3](c)w|"YEN\CURS:<<a!AUSB Aa:
   1/2LCUR-L-YENIS:@YENo|o-SS:O^3](c)w!A'NYENiYENH|b X
   uo/u!Ao^1OCURWYEN?+-`^1BS:@AAo!C

   USB Aa: 1/2L-a-o 1/4o:'!(c)TH(Hot-plugging and unplugging)|b
   FreeBSD YENi-`aAUuL-akS:^1YENthYEN?+-`^1BS:@!A
   <<O/A:^3!G|b"t^2IP:} 3/4-:<<e'NYENy+-uCURWAa: 1/2L!A-a 1/2"`iAo:
   3/4-:NOTDEGCURi!AYENHA *S:KCUR-L-YEN^2n-a-oS:xAZ!C

   NOTUAo:^2O,` 1/2D-DEGN 3/4\ ukbd(4) -a-o>>!(c)u!C

   4.4.2. YENj|-a-o bus .AE^1<<!An<<c,>>o^3](c)w(c)O!H

   FreeBSD CURa:'(c)CUR@"C,
   1/4tDEGO(^1^3NOTO!GMicrosoft!BLogitech!BATI)(c)ODEGu-a-o bus CURI
   InPort bus CURP:+--a-o.AE^1<<!C uM|O!A^1w^3]-a-o
   kernel(GENERIC)CURw,gCUR-L-CUR-oS:tYEN|I-a-oAAXDEGEu{|!!C
   |]|^1!AnYEN[CURJCURU|C"`i kernel ^3](c)wAE"A<<.s
   1/2sA:P:!B|w,E!ACUR~-`a+-OYENI!G

 device mse0 at isa? port 0x23c irq5

   Bus .AE^1<<^3q+-`n.fDEGt+-MYENI-a-oCURP:+-YENdCUR~-`a"IYENI!C
   ^3o"C,YENdYENiYENH^3](c)w port address CURI IRQ E!A^3o"C,^2O,`
   1/2D-DEGN 3/4\S:A-a-o.AE^1<<>>!(c)uCURaYENUCURI mse(4) >>!(c)u!C

   4.4.3. PS/2 (!S:mouse port!" (c)I
   !S:keyboard!")-a-o.AE^1<<n<<c,>>o^3](c)wCUR~|n(c)O!H

   PS/2 .AE^1<<^3-L-|^3CURa:'(c)!A(c)O>>YnYENI"`i-a-oAAXDEGEu{|! psm
   |b^1w^3]-a-o kernel(GENERIC)CURw|^3CUR-oS:tCURF!C

   YS:A|Uq-a-o kernel CUR-o-o|CURF psm
   -a-o,U:!A"-o>>o'N|AS:aCURU|CCUR-o(R)eYEN["`i kernel
   ^3](c)wAE"A<<.s 1/2sA:P:!B|w,E!G

 device psm0 at atkbdc? irq 12

   .iP:} 3/4-:(R)E kernel |^3YEN? 1/2TDEG>>'u"`i psm0 !A
   1/2D-DEGEYEN^2 1/2T>>{|b /dev CUR-o|^3 psm0 !C
   |p-aG"S|^3-a-o,U:!A"-o>>o'NYENI root
   "OYEN'CURU|C<<u:YENO"O<<O/YENssS:a!G

 # cd /dev; sh MAKEDEV psm0

     Note: |p-aGNOTO FreeBSD
     5.0-RELEASE(S:tCURS:<<a-a(c)YEN>>)-a-o,U:!A|]NOTDEG+-A:YENI
     devfs(5)  3/4-:"i-a-o|]-A!A (c)OYENH.||UDEGE|b /dev
     CURU<<O/YENssNOTUAo:^3]^3AE-a-o,`AI!A|]|^1'NYENiYENH^2CUR^1LCURW+-^3oCUR@"B!C

   4.4.4. |p-aGCUR-L-YENI X Window
   Ao^1O-a-o,U:!ACUR]YENiYENHYENI.AE^1<<P:U:!H

   Y"IYENI console -a-o^1w^3]AAXDEGEu{|!(CUR]'NNOTO syscons(4))!A
   "-o>>o'NYENiYENH|bCURaa|rCURP:+--a-o console
   CURW+-YENI.AE^1<<"ODEGAAP:KCURaa|rCURF!C "-o>>on+-ODEGE moused(8)
   "AP:}+-O'aa 1/4D-AAaYENU:!A  1/2D-YEN'CURU|C<<u:YENO!G

 # moused -p /dev/xxxx -t yyyy
 # vidcontrol -m on

   "a:CURCUR!yxxxx!zNOTO.AE^1<<-a-o^3]^3AE|W-oU!A|O
   !yyyyy!z<<hNOTO.AE^1<<(c)O"IYENI-a-o protocol -oO/Ath!C
   YENO/<<e-a-o moused YENiYENH|UDEGEDEG>>'u(DEG-L-CURFAA|!-a-o
   serial .AE^1<<CURS:YEN~)CURj|h 1/4AE.AE^1<<(c)O"IYENI-a-o protocol
   -oO/Ath!A|OCUR-L-YENI"e.NYENh<<u:(c)w!C !yprotocol
   -oO/Ath!z^3](c)wYENI auto
   'N.||UDEGEDEG>>'uCURF!CY|UDEGEDEG>>'uYEN-c-+-N-a-o,U:!A 1/2D-DEGN
   3/4\ moused(8) ,I+--a-o type "-oNOTq>>!(c)u!C

   |p-aGYENI-a-oNOTO PS/2 .AE^1<<!AYENunS:a moused_enable="YES"
   YEN["`i /etc/rc.conf !A^3o 1/4E"C|,P:}
   3/4-:'N.||UDEGE+-ODEGECURF!C |^1YEN~!A|p-aGn|b(c)O|^3 virtual
   terminals CURWCUR]-`a"IYENI.AE^1<<!A |OCUR-L-(c)wYENu|^3 console
   -a-o,U:!A"-o>>o 1/2D-|AS:a allscreens_flags="-m on" YEN["`i
   /etc/rc.conf ,I+-S:YYENi!C

   moused
   |bDEGo|aeCURCUR-a-o(R)EO!A|p-aGn"IYENI.AE^1<<NOTUAo:YEN\-`a!A^3-L-YEN^2P:.^3z^1L
   moused (c)I"a:YENLu{|!^1^3NOTO X uo/u!"OP:i|ae!C 1/2D-DEGN 3/4\
   FAQ CURCUR|^3Ao:!yNOTDEGCURDEG>>oCUR-L--`a|b X
   uo/u!,I"IYENI.AE^1<<!H!zYENHAA,NNOTUAo:^2O,`!C

   4.4.5. |bCURaa|r 1/4O|!-a-o console
   Ao^1On<<c,>>oYENI.AE^1<<"ODEGAAP:KCURaa|r(c)O!H

   .iDEGo|ae moused <<a!A(DEGN 3/4\<<eCUR@,`) <<o:|iYEN-aAa:!A+-uuU^2
   3/4DEGE.AE^1<<"O?i 3/4U:CUR@ODEGIDEG`iCURS:<<a(c)nP:}!A^3o
   1/4E'NS:^1|"!y 1/2AE>>s!z!C
   n!yP:KCURW!z-a-o,U:!A<<o:.AE^1<<CURCURAa:'NYENiYENHCURF!C
   n!y(c)u|u?i"uDEGI!z-a-o,U:!A<<o:.AE^1<<YENkAa:

   |p-aGS:A-a-o.AE^1<<"S|^3CURCURAa:!AS:AYENiYENHYENI
   1/4OAA-a-oCURe|!!A(c)INOTO<<.s(c)w,q.AE^1<<<<o:Aa:-a-oCURe|!!A
   "O^1F|"!u(c)u|u!v-a-oYEN\-`a!C,O+-! 1/2D-DEGN 3/4\ moused(8)
   >>!(c)u!C

   4.4.6. S:U.AE^1<<CURW+--a-o-ou 1/2u:!B-ou 1/2u:<<o:P:s!AYENiYENH|b
   console CURW"IYENIP:U:!H

   ^3oOu-a(R) *^1A...!A<<U:CUR-L-(c)-|a!A|bCURj|h
   1/4AE-a-o+-!-apCURUCUR-L-|ae!C ^3o"C,|^3-ou
   1/2u:-a-o.AE^1<<>>YnYENI-S(R)iAAXDEGEu{|!CUR~|ae!A
   DEG-L-<<D!A.AE^1<<AAXDEGEu{|!(c)I"IYENI-aI|UCURv-a-oA^3YENIu{|!|^3CURa:'(c)!A
   CUR-L-uM!A^3o"C,.AE^1<<YENu-`aDEG-:.i|"NOTO'P:^3q-a-o"aAa:(c)ICURTAa:-a-o.AE^1<<"OYENI|OCURw!C

   |p-aGn|b X uo/u!Ao^1OCURW"IYENI-ou 1/2u:-a-o,U:!A 1/2D-DEGN 3/4\ X
   uo/u!CURW-a-o-ou 1/2u:"IYENI >>!(c)u!C

   4.4.7.
   n<<c,>>o|buS:DEGO<<NOT^1q,-L-CURW"IYENI.AE^1<<!By,n^2y!BA:^2+-+--aO(c)O!H

   1/2D-DEGN 3/4\<<e+--a-o PS/2 .AE^1<<-a-oDEGYu-a !C

     --------------------------------------------------------------

4.5 -oo,o,o serial ^3]^3AE

   4.5.1. FreeBSD CURa:'(c)th"C,-oo,oYENd(c)O!H

   4.5.2. NOTDEGCURDEG>>o FreeBSD S:a:CUR-L-"`i PnP(AH'!AHYENI!APlug
   & Play)^3W(R)ae-a-o modem?

   4.5.3. FreeBSD CURa:'(c)^1^3NOTO Winmodems CURS:Ath-a-o^3nAAe
   modem P:U:!H

   4.5.4. |^3 Broadcom 43xx uL
   1/2u-ooYENd-a-o`iYENIAAXDEGEu{|!(Native driver)P:U:!H

   4.5.5. FreeBSD CURa:'(c)th"C, multi-port serialYENd(c)O!H

   4.5.6. |b serial console CURWn|p|oCUR~.|YENX^2{ boot:
   '-L-YENU:(c)O!H

   4.5.1. FreeBSD CURa:'(c)th"C,-oo,oYENd(c)O!H

   1/2D-DEGN|O FreeBSD |U-a(c)YEN>>-a-ouwAAeCURa:'(c)|C-ai!C

   4.5.2. NOTDEGCURDEG>>o FreeBSD S:a:CUR-L-"`i PnP(AH'!AHYENI!APlug
   & Play)^3W(R)ae-a-o modem?

   `i|]|b(c)o!G>>YnS:a modem -a-o PnP ID YEN["`i serial
   AAXDEGEu{|!-a-o PnP ID -ai!AS:@-ak|pCURU!G

    1. -oYENy!A|b kernel ^3](c)wAECUR-oYEN[CURJ controller pnp0!A
       "A<<.s 1/2sA:P:!B|w,E kernel!A^3I<<a<<P:} 3/4-:'N.|+-ODEGE PnP
       CURa:'(c)!C

    2. uM<<a!Akernel .|S:aDEG>>'u"`i(c)O|^3^3]^3AECURW-a-o PnP ID
       ^3-L-|CYENX!C ^3o(R)E!A *S:i
       /usr/src/sys/isa/sio.c(CURjNOTu^2A:752|aeYEN-aYENk-a-o|aCURe)!A
       YENiYENH.j'M SUP1310 .iAo:Aa:|r(|`i(c)o sio_ids[] -aiCUR-o)!A 
       1/2D-+-NeCUR~ kernel AAaYENU:-a-o modem -a-o PnP ID 
       1/2AE>>s"`iNOTUAo:|`i,m!C

    3. ^3o(R)E!A|A<<.s 1/2sA:P:!B|w,E kernel!A^3I<<a<<P:}
       3/4-:A^3,O'N.|YEN? 1/2TDEG>>'u"`i modem CURF!C

   |^1YEN~!ACUR]YENiYENH|bP:} 3/4-:(R)EYENH pnp
   <<u:YENO"OCURaDEGE^3](c)w PnP ^3]^3AE!A "OAAy kernel +-oYENHYEN?
   1/2TDEG>>'u!AA|"O!G

 pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8

   4.5.3. FreeBSD CURa:'(c)^1^3NOTO Winmodems CURS:Ath-a-o^3nAAe
   modem P:U:!H

   FreeBSD YENiYENH|w,EABYEN~-a-o^3nAAe"OCURa:'(c)^3nAAe modem!C
   ^1^3NOTO comms/ltmdm YENiCURa:'(c)+-`"-L--a-o Lucent LT '^1CURu!A
   comms/mwavem <<hYENiCURa:'(c) IBM Thinkpad 600 CURI 700
   uS:DEGO<<NOT^1q,-L-CURW+--a-o modem!C

   uM|O!A"ACUR-L--`aYENI^3nAAe modem "O|w,E FreeBSD!A
   |]NOTDEG!G^3oAth^3nAAeYEN^2P:.|bS:@.~"t^2I|w,ES:^1^2|CURS:<<a!ACUR~-`a|w,E!C

   4.5.4. |^3 Broadcom 43xx uL
   1/2u-ooYENd-a-o`iYENIAAXDEGEu{|!(Native driver)P:U:!H

   "S|^3!A|OYENBCUR]CUR-L-CUROYENi-`a.||^3!C

   Broadcom (c)Uu'CUR 1/2P:}|^3Ao:uL
   1/2u-ooYENd'^1CURu-a-oAAXDEGEu{|!NOTUAo:>>!(c)u!A
   YEND|]CURj.S:NOTOYENLIYENI^3nAAe"O+-+-"iuL 1/2uP:C,?eCURe|!!C
   "AE^1eCURW!A|]NOTDEGn-`a^3q^1LNOTu:DEGeAp"^1^1q<<H(c)eu.|(FCC)AE-oI|w^3W-a-o,U:!A
   YEN^2P:.
   1/2T<<O^2-L-<<~CUR-L--`aAAy"IYENI-aICUR-L--`aAH.NS:oDEGENOTUAo:^3](c)w!ACURn|p!G^1q-oI-aiAW^2v!BNOTUAo:
   1/4O^2ODEGN 1/4AE!B?eYENX^1q. 1/2uYEN!C |yNOTO!A|p-aGS:UICUR-L--a
   3/4^1D|p|oYENh+-+-"i'^1CURu-a-o,U:!A"-o>>o 1/4P:
   1/4gAAXDEGEu{|!CURS:,o(R)-L-(c)ECUR-L-CUROYENi|ae!C

   4.5.5. FreeBSD CURa:'(c)th"C, multi-port serialYENd(c)O!H

   1/2D-DEGN 3/4\"IYENICURaYENUCURW-a-o |w,E 1/2g!X"a:YENLuwAAe
   |C-ai!C

   Ao:uM|^3"C,YENdNOTO"SuP-a-o(CUR *"a:NOTO|^3 1/4D-(c)u!GNOTU(R)e
   AST ^3W(R)ae)|yCUR]YENiYENHYEN?+-`"IYENI!C

   |U:(c)oYENd-a-o^3](c)wCURe+-!A 1/2D-DEGN 3/4\ sio(4) -a-o>>!(c)u!C

   4.5.6. |b serial console CURWn|p|oCUR~.|YENX^2{ boot:
   '-L-YENU:(c)O!H

   * kernel ^3](c)wAEYEN[CURJ options COMCONSOLE

   * <<O/YENss /boot.config AE!A"AYENB,OAE,I+-CUR-o(R)eYENuP:nCURW -P

   * S:aAa: 1/2L+-q 3/4-: 3/4^1CURW(c)TH+- 1/4

   ^2O,` 1/2D-NOTY /usr/src/sys/i386/boot/biosboot/README.serial

     --------------------------------------------------------------

4.6 u(R)A:YENd

   4.6.1. FreeBSD CURa:'(c)th"C,u(R)A:YENd!H

   4.6.2. pcm(4) (c)OCURa:'(c)-a-ou(R)A:YENd"S|^3Anu!A|^3CURDEG>>o
   1/4E(R)E,N"MCURe|!P:U:!H

   4.6.1. FreeBSD CURa:'(c)th"C,u(R)A:YENd!H

   FreeBSD CURa:'(c)|U-oO/u(R)A:YENd!AYEN]NOTACURF SoundBlaster(R)!B
   SoundBlaster Pro!BSoundBlaster 16!BPro Audio Spectrum 16!B
   AdLib!BCURI Gravis UltraSound sound cards (^2O,` 1/2D-DEGN 3/4\
   FreeBSD uo|ae+-!^3o/ YENHCURI snd(4) -a-o>>!(c)u)!C |^1YEN~!A^1i
   MPU-401 CURI MIDI NOTU(R)e^3W(R)ae-a-oCUR]|^3CUR@(c)wu{<<
   *-a-oCURa:'(c)!A|O Microsoft(R) Sound System
   ^3W(R)aeCUR]|^3CURa:'(c)!C

     Note: AAXDEGEu{|!P:E 3/4AYENI(c)o!yu(R)A:!z^3!CURA!I DEG-L-CURF
     SoundBlaster CURS:YEN~!A
     YENO/<<eu(R)A:AAXDEGEu{|!"ACUR-L-CURa:'(c)^3o"C,u(R)A:YENdCURW-a-oYENu-oD-
     3/4-:, SCSI^3]^3AE(c)I.n+-`i!C SoundBlaster -a-o SCSI
     CURP:+-CURINOTY"C,<<D SCSI -a-oYENu-oD-
     3/4-:NOTO|^3CURa:'(c)!A|yuL-akYENI"OP:} 3/4-:!C

   4.6.2. pcm(4) (c)OCURa:'(c)-a-ou(R)A:YENd"S|^3Anu!A|^3CURDEG>>o
   1/4E(R)E,N"MCURe|!P:U:!H

   |]NOTDEG|^3"C,^1^3NOTO es1370 '^1CURu-a-ou(R)A:YENd.||b"C|,P:}
   3/4-:(R)ES:auP:q 1/2ONOTDEG^1s!C  1/4E(R)E,N-akNOTO|b"C|,P:}
   3/4-:(R)EDEGo|aeCURU+-<<u:YENO!A(c)INOTOYEN["`i /etc/rc.local
   CUR-o!G

 # mixer pcm 100 vol 100 cd 100

     --------------------------------------------------------------

4.7 "a:YENL(c)C,^2S:DEGYAD(ACPI!B<<P:} 3/4-:<<a+- 3/4CURF..uYEN)

   4.7.1. FreeBSD AUCURa:'(c)"a:YENLth"C,uwAAe(c)O!H

   4.7.2. FreeBSD
   CURa:'(c)uS:DEGO<<NOT^1q,-L--a-oNOTU^1q-oTH^2zYEN\-`aP:U:!H

   4.7.3. ,O|p|oAo:^3NOT ACPI!H

   4.7.4. Micron ^1q,-L-A`NOTO|b FreeBSD +-ODEGE(R)E'N+- 3/4+-
   1/4!A,O<<c,>>o?`i(c)O!H

   4.7.5. 3Com(R) PCI CURP:+--oo,oYENduL-ak|b Micron
   ^1q,-L-CURW"IYENI!A,O<<c,>>o?`i!H

   4.7.6. YEND 3/4-:-aONOTOYENIuO/-oO(ASUS) K7V!AYENiNOTOYENIP:}
   3/4-:CURuP:}"`iCUR@YENb'N.iCURF!A<<c,>>o?`i(c)O!H

   4.7.7. PCMCIA YENduL-ak"IYENI!A"AYENX^2{?u>>~DEGT(R)S: !S:cbb0:
   unsupported card type detected.!" ,O<<c,>>o?`i!H

   4.7.8. NOTDEGCURDEG>>o Dell(TM) PowerEdge(TM) 2850 ,ES:^1 FreeBSD
   CURS:<<a!A<<P:} 3/4-:+-uuUAa: 1/2L'N+- 3/4CURF!H

   4.7.1. FreeBSD AUCURa:'(c)"a:YENLth"C,uwAAe(c)O!H

   1/2D-DEGN 3/4\"IYENICURaYENUCURW-a-o |w,E 1/2g!X"a:YENLuwAAe !C

   4.7.2. FreeBSD
   CURa:'(c)uS:DEGO<<NOT^1q,-L--a-oNOTU^1q-oTH^2zYEN\-`aP:U:!H

   FreeBSD 4.X(S:tCURS:<<a-a(c)YEN>>)|bNOTY"C,
   3/4-:-oO/CURW^3-L-|^3CURa:'(c) APM!C ^2O,` 1/2D-DEGN 3/4\ apm(4)
   -a-o>>!(c)u!C

   FreeBSD 5.X(S:tCURS:<<a-a(c)YEN>>)CURa:'(c)|bYENO/<<eCURj^3!CURA
   3/4-:-oO/CURW^3-L-|^3-a-o ACPI YEN\-`a!C ^2O,` 1/2D-DEGN 3/4\
   acpi(4) -a-o>>!(c)u!CY 3/4-: 3/4^1CURW|P(R)E^3-L-|^3 APM CURI ACPI
   YEN\-`a-a-o,U:!AS:UI<<O/A:^3S:AYENiYENH"a-aI^3-L-,O,ONOTY!A
   NOTYNOTYthCUR@-oO/CURn,u^2AA|XS:A-a-o>>Y"D!C

   4.7.3. ,O|p|oAo:^3NOT ACPI!H

   S:a

 hint.acpi.0.disabled="1"

   ^3oNOTqYEN["`i /boot/device.hints S:YYENi!C

   4.7.4. Micron ^1q,-L-A`NOTO|b FreeBSD +-ODEGE(R)E'N+- 3/4+-
   1/4!A,O<<c,>>o?`i(c)O!H

   |^3"C, Micron YEND 3/4-:-aOCURW-a-o BIOS |b PCI
   CURe+-.||^3DEGYAD!A ^3o.| 3/4EP PCI ^3]^3AE.|^3Q BIOS
   DEG>>'uNOTDEGCUR-L-YEN? 1/2T^3](c)w!A|OP:iCURJ FreeBSD 'N+- 3/4+-
   1/4!C

   1/4E(R)E,N"MCURe|!!GAo:^3NOT BIOS CUR-o !S:Plug and Play Operating
   System!" -a-o^3](c)w!C

   4.7.5. 3Com(R) PCI CURP:+--oo,oYENduL-ak|b Micron
   ^1q,-L-CURW"IYENI!A,O<<c,>>o?`i!H

   ^3oDEGYAD,o<<e+--a-oDEGYAD|]-ACUR@ 1/4E!AA`CURS:!A'NNOTOAo:^3NOT
   BIOS CURCUR|^3Ao: OS PnP -a-o^3](c)w!C

   1/4E(R)E,N"MCURe|!!GAo:^3NOT BIOS CUR-o !S:Plug and Play Operating
   System!" -a-o^3](c)w!C

   4.7.6. YEND 3/4-:-aONOTOYENIuO/-oO(ASUS) K7V!AYENiNOTOYENIP:}
   3/4-:CURuP:}"`iCUR@YENb'N.iCURF!A<<c,>>o?`i(c)O!H

   P:iCURJ BIOS ^3](c)w!A"AAo:^3NOT !S:boot virus protection!"
   ^3](c)wS:YYENi!C

   4.7.7. PCMCIA YENduL-ak"IYENI!A"AYENX^2{?u>>~DEGT(R)S: !S:cbb0:
   unsupported card type detected.!" ,O<<c,>>o?`i!H

   YENiYENH,O,ONOTYS:iYENIAA-a-oCURe|!!A 1/2D-YENy *S:i kernel
   ^3](c)wAE!A(R)^3+- 1/4CURU+-^3o'X|ae!G

 device cbb
 device pccard
 device cardbus

   uM<<aYEN[CURW!G

 device pcic
 device card 1

   ^3I<<a 1/2D-DEGN 3/4\ Handbook CURCUR  1/2O 3/4a FreeBSD Kernel
   ^3^1,`!AYENH<<.s 1/2sA:P:!B|w,E.s-a-o kernel!C

   4.7.8. NOTDEGCURDEG>>o Dell(TM) PowerEdge(TM) 2850 ,ES:^1 FreeBSD
   CURS:<<a!A<<P:} 3/4-:+-uuUAa: 1/2L'N+- 3/4CURF!H

   (YEN>>ADYENN cdsheen '-L-"N)A|,O|b Dell PowerEdge 2850 CURW+-|w,E
   FreeBSD 6.0!A CUR-L-^1L|w,ES:^1|"!B"A<<.sP:} 3/4-:CURS:<<a!Auo^2{
   console -a-oAa: 1/2LCUR-L--`aDEGECURF!A |P
   1/4E-a-o+-!-ap|u:YENGCUR]|s|b(c)o FreeBSD 5.3 CURI FreeBSD 5.4!A
   ,g^1LCUR@uf.j'M!AuoA:+-NOTO|]NOTDEG^3oYENx 3/4-:
   3/4^1CURW+-|^3CUR@O !S:Dell Remote Access Controller (DRAC)!"!A
   ^3oO,E,m.|^3Q"t^2I?eAN|"CUR@O USB Keyboard!A(c)OYENH 3/4EPP:}S:^1
   3/4-:CURS:<<a!AYEN?+-`-a-o PS/2 Aa: 1/2LCURI|OCUR-L--`aDEGECURF!I

   1/4E(R)E,N"MCURe|!|pCURU!G

    1. YENyYENH Single User Mode P:iCURJ"t^2I

    2. |b(c)RYENO|C 1/4O|!CURU!AYENyDEGo|aeCURU|C(c)RYENO!G

 # fsck -y /

 # mount -u /

    3. uM<<a 1/2s?e /etc/devd.conf!AS:a^1i(c)o USB Keyboard
       -a-oCURa:'(c) 1/4E(R)E(R)^3+- 1/4!A
       CUR]'NNOTOS:aCURU+-'X|aeP:}AYYEN[CURW #

 # When a USB keyboard arrives, attach it as the console keyboard.
 #attach 100 {
 #       device-name "ukbd0";
 #       action "kbdcontrol -k /dev/ukbd0 < /dev/console && /etc/rc.d/syscons restart";
 #};
 #detach 100 {
 #       device-name "ukbd0";
 #       action "kbdcontrol -k /dev/kbd0 < /dev/console";
 #};

    4. uM<<a?eCURJ exitA-:P:} Single User Mode CURS:<<a!A
       'NYENiYENHP:P:S:QP:iCURJ"t^2I!B|OYENBAa:
       1/2LCUR]YENiYENHYEN?+-`^1BS:@!ACURU|,P:}
       3/4-:CUR]CUR-L-.||^3DEGYAD!I

   YENtYEN~!ADell -a-o DRAC/BMC
   NOTYDEG_"O|^3AEZ|hCUR-L-?u-a-o>>.-oY|s"uYEN\-`a!A|^3?^3
   1/2`i-a-oCURHYENiYENH-a+--a+-NOTY...

     --------------------------------------------------------------

                      Chapter 5 +-`"-L-DEGYAD,N"M

   William Liao

   5.1. NOTDEGCURDEG>>o FreeBSD S:`i"`i?u>>~-a-oDEGO
   3/4D-AAe(R)eP:q!H

   5.2. uw-oD-|^3Aay(R)E,O<<c,>>o?`i?

   5.3. NOTDEGCURDEG>>o FreeBSD S:`iCUR-L-"`i HP Netserver -a-o SCSI
   +-+-"iYENd!H

   5.4. CUR@-a 1/2NOTY"`iAth|u: !S:ed1: timeout!"
   -a-oDEGT(R)S:!CYEN|INOTOCURDEG>>o.N<<a:(c)O!H

   5.5. 3Com 3C509 -oo,oYENd^2o:|W"a:S:(R) 1/2}CURu!H

   5.6. YEN|aeDEGd-|L-ai^3t<< *-}CURN-i-a-o-oC!A,O<<c,>>o?`i!H

   5.7. u{|!|^3(R)E.||] !S:Signal 11!" ?u>>~|ODEG+-CURi!H

   5.8. .i 3/4-:(R)EYENX^2{!G!S:Fatal trap 12: page fault in kernel
   mode!" !A(c)INOTO !S:panic:!"
   YENHCURICUR@DEGi?u>>~DEGT(R)S:!A,O<<c,>>o?`i!H

   5.9. NOTDEGCURDEG>>o.iS:UP:}
   3/4-:(R)E!A?A^1oAAU:P:A!AYENBCUR-L-DEG+-DEG{DEGE!H

   5.10. NOTDEGCURDEG>>oS:U-a-o"t^2I,E|^3 128 MB -a-o RAM!A|O FreeBSD
   YENuYENICURF"a:CURCUR-a-o 64MB!H

   5.11.  3/4-: 3/4^1CURW-a-o RAM |^3 1GB
   YENHCURW!AYENiNOTONOTDEG|o<<o|NOT"`i !S:kmem_map too small!" -a-o
   panic ?u>>~DEGT(R)S:!H

   5.12.  3/4-: 3/4^1CURW RAM CUR-L-"`i 1GB !A|yCUR'.|YENX^2{
   !S:kmem_map too small!!" -a-o panic ?u>>~DEGT(R)S:

   5.13. NOTDEGCURDEG>>oS:UCUR@-a 1/2NOTY"`i !S:/kernel: proc: table
   is full!" ^3oO?u>>~DEGT(R)S:!H

   5.14. NOTDEGCURDEG>>oYENI.s kernel P:} 3/4-:(R)E!AYENX^2{ !S:CMAP
   busy!" ^3oO?u>>~DEGT(R)S:!H

   5.15.  1/2D-DEGY^3oODEGT(R)S:!G!S:ahc0: brkadrint, Illegal Host
   Access at seqaddr 0x0!" NOTOCURDEG>>o.N<<a:!H

   5.16. P:} 3/4-:(R)E!ANOTY"`i^3oO?u>>~DEGT(R)S: !S:ahc0: illegal
   cable configuration!"!C S:U-a-o+-AE 1/2u 1/2T(c)w|^3+-u^1i!C
   NOTOYENXCURFCURDEG>>oDEGYAD(c)O!H

   5.17. NOTDEGCURDEG>>o Sendmail CUR@-a 1/2YENX^2{ !S:!S:mail loops
   back to myself!"!" ^3oO?u>>~DEGT(R)S:!H

   5.18. NOTDEGCURDEG>>oDEGo|ae>>.-oY 3/4-: 3/4^1!]remote
   machine!^-a-oYENth?A^1o-a-o^3nAAe(R)E!A
   |^3CUR-L-YEN?+-`-a-o+-!S:I!H

   5.19. NOTDEGCURDEG>>oS:U-a-o 3/4-: 3/4^1CUR@-a 1/2AAaYENU:
   !S:calcru: negative time...!"!H

   5.20. YENX^2{ !S:pcm0 not found!" ^3oODEGT(R)S:!A(c)I-aINOTO
   S:U-a-ou(R)A:YENdAAU:|"CURF pcm1!A|y|b kernel ^3](c)w
   AE&#65533;S:UNOTO^3] device pcm0 DEGU!C^3oNOTO<<c,>>o|^"AE(c)O!H

   5.21. NOTDEGCURDEG>>o|bS:o.s"`i FreeBSD 4.X
   <<a.|S:`iCUR-L-"`iS:U-a-o PnP YENd !](c)I-aINOTOS:`i|" unknown!^!H

   5.22. NOTDEGCURDEG>>oS:U+-`+-`|bP:]CUR@"C,u{|!!]"O|p top (c)I
   systat!^-a-o(R)EOYENX^2{ !S:nlist failed!" ^3oO?u>>~DEGT(R)S:!H

   5.23. NOTDEGCURDEG>>oS:UYENI ssh (c)I telnet
   ^3s"`iS:U-a-o^1q,-L-(R)E!A.|uYEN<<Y<<U:-ao/-a-oCUR@NOTq(R)EP:!CUR~-`a^3sCURW!H

   5.24. !S:stray IRQ!" ^3oO?u>>~DEGT(R)S:NOTOCURDEG>>o.N<<a:!H

   5.25. NOTDEGCURDEG>>o !S:file: table is full!" ^3oODEGT(R)S:
   CUR@-a 1/2|b dmesg &#65533;<< 1/2AEYENX^2{!H

   5.26. NOTDEGCURDEG>>oS:UuS:DEGO<<NOT^1q,-L-CURW-a-o(R)EA:ACUR@-a
   1/2AAaYENU:?u>>~-a-o(R)EP:!!H

   5.27. NOTDEGCURDEG>>oS:U-a-ouS:DEGO<<NOT^1q,-L-uL-akYEN?
   1/2T-a-oDEG>>'u"`i PC card !H

   5.28. NOTDEGCURDEG>>o|b BIOS ue+-CURS:<<a!AFreeBSD -a-o boot
   loader AAaYENU: !S:Read error!" uM<<a'NDEG+-CURiCUR-L-DEGECURF!H

   5.29. YENtCUR@OS:@.~"t^2I-oR.'CURFS:U-a-o Boot
   Manager!CS:Un<<c,>>o 1/4ECUR~-`aS:aYEN|AU `i|^"O!H

   5.30. ^3oO?u>>~DEGT(R)S:!G!S:swap_pager: indefinite wait buffer:!"
   NOTOCURDEG>>o.N<<a:(c)O!H

   5.31. NOTDEG|o|b buildworld/installworld (R)E!A.|w|b !S:touch: not
   found!" -a-o?u>>~DEGT(R)S:?

   5.1. NOTDEGCURDEG>>o FreeBSD S:`i"`i?u>>~-a-oDEGO
   3/4D-AAe(R)eP:q!H

   S:`i"`i?u>>~-a-oDEGO
   3/4D-AAe(R)eP:qNOTO|]NOTDEG-a<<^2z|`iS:},oueAA|`iS:}"a-aINOTOCUR-L-|P-a-o!C

   The convention for most PC hardware is to use the memory area
   between 3.5G and 4G for a special purpose (usually for PCI). This
   address space is used to access PCI hardware. As a result real,
   physical memory can not appear in that address space.

   What happens to the memory that should appear in that location is
   dependent on your hardware. Unfortunately, some hardware does
   nothing and the ability to use that last 500M of RAM is entirely
   lost.

   Luckily, most hardware remaps the memory to a higher location so
   that it can still be used. However, this can cause some confusion
   if you watch the boot messages.

   On a 32 bit version of FreeBSD, the memory appears lost, since it
   will be remapped above 4G, which a 32 bit kernel is unable to
   access. In this case, the solution is to build a PAE enabled
   kernel. See this FAQ entry for more information.

   On a 64 bit version of FreeBSD, or when running a PAE-enabled
   kernel, FreeBSD will correctly detect and remap the memory so it
   is usable. During boot, however, it may seem as if FreeBSD is
   detecting more memory than the system really has. This is normal
   and the available memory will be corrected as the boot process
   completes.

   5.2. uw-oD-|^3Aay(R)E,O<<c,>>o?`i?

   YNOTO SCSI uw-oD--a-o,U:!A"-o>>o-oI-oD-
   3/4-:A^3,O|^3-`aCURO|UDEGES:@ re-mapping
   -a-oDEGES:@!CuM|O!A|]NOTDEGCUR@"C,YEN 1/4-a 3/4-a-o|]-A!A|bYENX
   1/4t(R)E!A<<U:|huw-oD--a-o^3oP:u YEN\-`aNOTOAo:^3NOT-a-o...

   n+-N"a:<<.sP:}+-O!A+-z>>Yn 1/2s?e,E,m-a-o^2A:CUR@O page  1/4O|!
   !]first device page mode!^!A|b FreeBSD
   CURWYENiYENHYENICURU+--a-o<<u:YENO?`i"`i !]YENH root"CURADEGo|ae!^

 # scsi -f /dev/rsd0c -m 1 -e -P 3

   uM<<a+-N AWRE (c)M ARRE -a-o 1/4AEE+-q 0 AAU:|" 1:-

 AWRE!]Auto Write Reallocation Enbld!^!G 1
 ARRE!]Auto Read Reallocation Enbld!^!G 1

   YENHCURU^3oNOTqNOTOYENN Ted Mittelstaedt
   <tedm@toybox.placo.com>(c)O'-L-"N!G

   YNOTDEG IDE
   uw-oD-!AYENo|o-a-oAay^3q+-`^3-L-NOTO^3A.D--a-o^1wYENu:!CYENO/<<e(c)O|^3,u.s-a-o
   IDE uw-oD-!ACUR-o^3!^3-L-|^3|UDEGE remapping
   Aay-a-o-`aCURO!CYENO/<<e(c)O|^3 IDE uw-oD-
   >>s^3yDEGO!A^3-L-'-L-"NCURFS:oCUR[-a-o<<OAO!A|OYENB.|ADEG+-zS:o'<<YENX^2{Aay-a-ouw-oD-!C

   |p-aG+-zCUR'.Qn *'_^2-L-YENIAay-a-o IDE
   uw-oD-!A+-zCUR'YENiYENH,OuUYENhCURU,u: IDE
   uw-oD->>s^3yDEGO(c)O'-L-"N-a-oAE'uu{|!!A"AYENIYEN|"OAENOTd+-z-a-ouw-oD-!C|^3(R)E^3o"C,^3nAAeYENi
   YENH+-j-c-<<.sAENOTduw-oD--a-oAay!A"A+-NYEN|I 1/4D-YENU:YENX"O!C

   ^1i ESDI!ARLL CURI MFM
   -a-ouw-oD-"O>>!!A^3q+-`AayNOTOYEN?+-`^2{P:H!ACUR]CUR-L-NOTOCURDEG
   >>o^3A.D--a-o<<eYENu:!C|b PC CURW!A-oI-oD-+-+-"iYENd(c)M BIOS t^3d
   1/4D-YENU:Aay-a-oYENoDEGE!C^3o ^1iCUR@"C,"IYENI
   BIOS"O|s"u-oI-oD--a-oS:@.~Ao^1O!]|p
   DOS!^NOTO"S|^3DEGYAD-a-o!CuM|O!A FreeBSD
   -a-o-oI-oD-AAXDEGEu{|!"ACUR-L-,g^1L BIOS
   "O|s"u-oI-oD-!A(c)OYENH!A|^3O bad144 -a-o
   3/4-:"iYENI"O"uYENN^3oP:uYEN\-`a!Cbad144 YENu-`aYENI|b wd
   ^3oO-oI-oD-AAXDEGEu{|!CURW!]^3o OYENN-aiCURF FreeBSD 4.0
   "ACUR-L-CURa:'(c)YEN|!^!AYEN|CUR]uL-akYENI|b SCSI uw-oD-CURW!C
   bad144-a-oCURuS:@CURe-akNOTO+-N(c)O|^3S:a:"`i-a-oAay,e(R)AE|s"`iCUR@O-SS:O-a-oAE(R)
   *&#65533;!C

   "IYENI bad144 -a-oA:uS:i - |suUAay,e(R)AE-a-o-SS:OAE(R)
   *NOTO(c)n|buw-oD--a-o^3I<<a CUR@yCURW!C|]NOTDEG^3oOAE(R)
   *Ax|s-a-oAay,e(R)AECURCUR!A|^3YENi-`a|^3"C,,e(R)AENOTO<<u:|Vuw-oD-^3I
   <<e-oY(c)OuoYENI-a-oAay+-!S:I!A'NNOTOYENi-`aAx|s /kernel
   ^3oOAE-a-o|aCURe!A(c)OYENHYEN| CUR@(c)wn-`a^3QP:}
   3/4-:u{|!(c)OAA-a"u!A|OP:} 3/4-:u{|!NOTO^3z^1L BIOS "OAA-a"u
   kernel AE!C^3o-aiYENU:CURF"IYENI bad144 -a-ouw-oD-u'CUR-L--`a
   3/4O:|^3P:W^1L 1024 O cylinder!A 16 O head CURI 63 O
   sector!C|O^3o"I+-o+-y"IYENI bad144 -a-ouw-oD--a-oCURjCURpCUR-L-
   -`aCURj(c)o 500 MB!C

   n"IYENI bad144 <<U:A^2^3ae!AYENun|bP:}(c)l|w,E(R)E!A|b FreeBSD
   fdisk ue+- S:a!S:Bad Block!" +- 1/2-oE^3]NOTDEG ON S:YYENi!C|b
   FreeBSD 2.2.7 YENH
   <<a^3-L-YENiYENH"IYENI|^1CURe-ak!C|y^3oOuw-oD--a-o cylinder
   CUR@(c)wn|b 1024 YENHCURU!C"I
   YENI<<e!AS:UI<<O/A:^3^3oOuw-oD-n|U:CURO:YENy"IYENIYEN|OCURp(R)E!AYENH<<K
   1/4o:?+-uE>>P-oIyDEG 3/4^2 3/4 ^1FCUR@-e-aNOT-oA!C

   |p-aG^3oOuw-oD- 3/4O:|^3P:W^1L 1024 O
   cylinder!]^1^3CURj(R)eP:q-a-o ESDI uw-oD-!^ !AESDI
   +-+-"iYENdS:QYENICUR@O-SS:O-a-oA`a'<< 1/4O|!"IYEN|-`a|b DOS
   CURUCURuS:@!C|O|p-aG+-z |b fdisk &#65533;-a-o !S:set geometry!"
   CURCUR?eCURJ !S:A`a'<<^1L!" -a-o geometry!Awd
   ^3oOAAXDEGEu{|!-`aCURF,N^3o"C,A`a'<< 
   1/4O|!!C+-zCUR]u'^1iCUR-L--`a"IYENI dangerously dedicated 
   1/4O|!"O<<O/YENss FreeBSD -a-oCURA^3IDEGI!A|]NOTDEGYEN|.|(c)?^2CUR
   geometry ^3oODEGN 1/4AE!C|^1YEN~!A'N-oa fdisk "IYENI
   +-z(c)O?eCURJ-a-o geometry DEGN
   1/4AE!AYEN|"IuM.|YENhAA-a"u^3ouw-oD--a-o-uYEN?,e(R)AE!A|O.|^1A
   ,OYENh<<O/YENssCUR@O^1LCURj-a-o FreeBSD
   CURA^3IDEGI!C|p-aG-oI-oD--a-o geometry CURw,g^3Q !S:A`a'<<!"
   ^1LCURF!A"-o>>o ^3oOCURA^3IDEGI !S:YEN^2P:.!" YENHCURaDEGE?eCURJ
   block  1/4AEYENO/-a-oCURe-ak"O<<O/YENss!C

   CUR@OS:O:^3t-a-oCURpS:THYEN(c)NOTOS:QYENI ESDI
   +-+-"iYENd"O^3](c)wCURj(R)eP:q-a-o ESDI uw-oD-!A YENI DOS P:}
   3/4-:CURuP:} 3/4-:!A|A+-NYEN| format NOTDEG DOS
   -a-oCURA^3IDEGI!CuM<<a<<P:} 3/4-:P:iCURJ FreeBSD |w,Eu{S:C,!A|b
   fdisk ue+-!AS:aDOS CURA^3IDEGI-a-o blocksize (c)M block number
   S:UCURU"O!CuM<<a<<.s^3](c)w geometry "I"a:,o DOS "IYENI-a-oCUR@
   1/4E!C S:RDEG-L- DOS CURA^3IDEGI!AuM<<a"IYENI+-zeeS:UCURU-a-o
   blocksize "O<<O/YENssCUR@O !S:cooperative!" FreeBSD
   CURA^3IDEGI!CuM<<a^3](c)w^3oOCURA^3IDEGINOTDEGYENi P:}
   3/4-:!A|AYEN'P:}Aay+- 1/2-oE!C|b-uYEN?-a-o|w,E^1Lu{CURCUR!Abad144
   .||bYENo|oAE(R) *"t^2I
   ^3Q<<O/YENss<<eYENy^3QDEGo|ae!C!]+-zYENiYENH<<o: Alt-F2
   "O-oENOTY^3oCUR@CURA!^|p-aG|b<<O/YENssAay,e
   (R)AEAE(R)EuoYENICURFDEGYAD!A+-z.|>>Yn^3](c)wCUR@O,uCURj-a-o-oI-oD-
   geometry - ^3o-aiYENU:+-z >>Yn<<P:}
   3/4-:!AuM<<aYENth^3!|A<<.sP:}(c)l!]YEN]NOTA<<.sCURA^3IYENHCURI|b
   DOS CURU<<.s format!^!C

   |p-aG remapping -a-oYEN\-`aCURw,g+-ODEGECURF!A|O+-z"IuMCUR@-a
   1/2NOTY"`iAay^2-L-YENI!A "-o>>o|O
   1/4{'<<CUR@YENxuw-oD-S:a!CAay-a-o+-!S:IYENu.|AH(R)EP:!
   1/4WYEN[|OS:oNOTDEGA:Y<<!C

   5.3. NOTDEGCURDEG>>o FreeBSD S:`iCUR-L-"`i HP Netserver -a-o SCSI
   +-+-"iYENd!H

   DEGoYEN>>CURW^3oONOTOCUR@OCURw-a 3/4-a-oDEGYAD!C|b HP Netserver 
   3/4-: 3/4^1CURW-a-o on-board EISA CURP:+- SCSI +-+-"iYENdYENe
   3/4UCURF(c)wS:}NOTDEG^2A: 11 -a-o EISA  1/4N!A|]|^1(c)O|^3-a-o
   !S:-u^1e!" EISA  1/4N^3-L-|bYEN|CURS:<<e!CYENiNOTO!A|b EISA
   (c)wS:}-aAAP:! >= 10 (R)E!A.|>>P<<u:(c)wu^1 PCI
   YENI-a-o(c)wS:}-aAAP:!NOTU 1/2A:NOTd-!AYENB FreeBSD -a-o
   auto-configuration uL-akYEN? 1/2T-a-o^3B^2z^3oO+-!S:I!C

   |]|^1!A^2{|bS:A-`aDEGu-a-o^3I|n"AE+-!'NNOTO|b kernel
   &#65533;^3](c)w EISA_SLOTS ^3oO?iP:uNOTDEG 12
   !AuM<<a.iS:@"S|^3^3oO DEGYAD :)!C 1/2D-"I.O Handbook CURCUR|^3Ao:
   kernel -a-o^3](c)w &#65533;(c)O>>!-a-oCURe-ak"O^3](c)w>>P 1/2sA:P:
   +-z-a-o kernel!C

   .iuM!A|b|w,E FreeBSD "`i^3o-oO/ 3/4-:
   3/4^1CURW(R)E!A^3oNOTOCUR@OAuYENI^3J^3JYENIAu-a-o
   DEGYAD!CNOTDEGCURF,N"M^3oODEGYAD!A|b UserConfig CURCUR|^3
   CUR@O-SS:O-a-oCURe-ak!A|w,E(R)ECUR-L-nP:iCURJ !S:visual!"
   CURP:+-!ANOTUCURI -a-o!A|b(c)RYENO|C 1/4O|!CURCUR!AAa:CURJ

 eisa 12
 quit

   uM<<a'N|pYENH(c)^1CUR@
   1/4E|w,E+-z-a-o"t^2I!CCUR-L-^1LS:UI<<O/A:^3+-z
   1/2sA:P:>>P|w,ECUR@O A:Y(c)o|UCURv-a-o kernel!A|y

   S:AE+-ae|bYEN
   1/4"O-a-o-a(c)YEN>>CURCUR-`a^1i^3oODEGYAD|^3CUR@O|n-a-o,N"MCURe-ak!C

     Note: +-zuL-ak|b HP Netserver CURW"IYENI dangerously dedicated
     -oI-oD- 1/4O|!!C+-zYENiYENHDEGN|O ^3oYEN-:uu,N
     YENHAo+-oS:o|h,eDEGT!C

   5.4. CUR@-a 1/2NOTY"`iAth|u: !S:ed1: timeout!"
   -a-oDEGT(R)S:!CYEN|INOTOCURDEG>>o.N<<a:(c)O!H

   ^3oO^3q+-`NOTOYENN(c)oCURCURA_ 1/2A:NOTd-(interrupt
   conflict)(c)O^3y|"-a-o ("O|p!G"aP:oYENd"IYENI"`iCURFNOTU|P-a-o
   IRQ)!C FreeBSD |b 2.0.5 -a(c)YENH<<e^3-L-(R)e^3\^3oO+-!S:I!A
   'N-oa|^3 IRQ 
   1/2A:NOTd-+-!S:I!A-oo,oYENdCUR]A^3,OCUR'YENiYEN?+-`^1BS:@!CuM|O!A|b
   2.0.5 -a(c)CURI"a:YENH<<a!A CURwCUR-L-|A(R)e^3\|^3 IRQ 
   1/2A:NOTd--a-o+-!S:ICURF!C 1/2D-(c)oP:} 3/4-:(R)E"IYENI -c
   ^3oO?iP:u!A uM<<aS:oS:i
   ed0/de0/..uYEN-a-o^3](c)w!A"I"a:(c)M+-z-oo,oYENdYEN>>"-a-o^3](c)wCUR@P!C

   |p-aG+-zNOTO"IYENI+-z-oo,oYENdCURW-a-o BNC
   +-uAY!A+-z(c)I^3\CUR].||]CUR-L-"}-a-o^2 *-oY^1q-ay^3](c)w!A
   |OuoYENI,E,m(device) timeout
   -a-o+-!S:I!CnAENOTdNOTOS:_|^3^3o-oO/+-!S:I!A
   +-zYENiYENH|b-oo,oYENdCURW-a 1/2+-u+-uCURW^2
   *-oY^1q-ay(CUR-L-n+-u-oo,o 1/2u)!A
   uM<<a!ANOTYNOTY^3oO?u>>~DEGT(R)S:NOTOCUR-L-NOTO'N(R)o/YEN-c-CURF!C

   |^3"C, NE2000 -a-oNOTU(R)eYENd!A|p-aGYEN|-a-o UTP
   DEGd-"S|^3+-u-oo,o 1/2u!A (c)INOTO,O-oo,o
   1/2u"A"S^3Q"IYENI-a-o,U:!ACUR].|YENX^2{^3oO?u>>~DEGT(R)S:!C

   5.5. 3Com 3C509 -oo,oYENd^2o:|W"a:S:(R) 1/2}CURu!H

   ^3oP:oYENd|^3OCUR-L-|n-a-o|aCURe|b(c)oYEN|+-`+-`.|?oYEN-c-YEN>>"-a-o^3](c)w,e(R)AE!C
   1/2D-"IYENI,O YENd-a-o DOS CURu"a 3c5x9.exe
   "OS:o.sYENdCURW^3](c)w!C

   5.6. YEN|aeDEGd-|L-ai^3t<< *-}CURN-i-a-o-oC!A,O<<c,>>o?`i!H

   |p-aGDEGssCUR@-a-oDEGYAD'NNOTO^3t<<
   *<<U:-oC-a-o,U:!A,OuUS:iAAU:+-z-a-o |L-ai 3/4-:^3s+-uDEGd-^3](c)w
   ^3oO|bCURaYENUCURCUR-a-o |L-ai 3/4-:^3](c)w
   ^3oO^3^1,`|^3YEN[YENHDEGQ 1/2 *!C

   5.7. u{|!|^3(R)E.||] !S:Signal 11!" ?u>>~|ODEG+-CURi!H

   Signal 11 ^3oO?u>>~NOTO|]NOTDEGS:A-a-o process
   ^1A,On|s"uCUR@P:oDEGO 3/4D-AAe!A
   |OS:A-a-oS:@.~"t^2I"ACUR-L-CUR^1^3\YEN|DEGu^3oODEGES:@|OuoYENI-a-o!C|p-aG^3o-oO/+-!S:I+-`+-`CUR-L-
   (c)w(R)EuoYENI!A"-o>>oS:AA^3,OnP:}(c)lNOTYNOTYNOTOCUR-L-NOTOth,IYENXDEGYADCURF!C

   ^3o"C,DEGYADYENi-`aNOTO>>PCURU|C+-!S:I|^3Ao:!G

    1. |p-aG^3oODEGYADYENu|bNOTYCUR@O+-z|UCURv
       1/4g-a-oNOTYO-S(c)wu{|!uoYENI!A"-o
       >>o<<U:|^3YENi-`aNOTO+-z-a-ou{|! 1/2X|^3DEGYAD!C

    2. |p-aG^3oODEGYADNOTO|b FreeBSD -a-oNOTY"C,"t^2IAE(R)
       *uoYENI!A|^3YENi-`aNOTO
       |]NOTDEGu{|!|^3DEGYAD!A|y^3q+-`|bS:UI^3o,sAA-a FAQ
       -a-o"IYENI-aIYENhP:]^3o"C,|^3 DEGYAD-a-ou{|!
       1/2X<<e!AYEN|I|'N'NCURw,g^3Q,N"MCURF!]^3oNOTO -current |bDEGu
       -a-o"AE!^!C

   CUR *"a:|p-aGS:A|b 1/2sA:P:CUR@Ou{|!!A|yNOTO"C|, 1/2sA:P:
   3/4^1P:]YENX"O-a-ou^2-aG^3-L-CUR-L-CUR@ 1/4E
   -a-o,U:!A^3oNOTOCUR@OuL,N-a-oDEGYAD!A|OCUR-L-NOTO FreeBSD -a:AI!C

   A|"O"O>>!!ADEG^2^3]+-zYEN?|bP:] !S:make buildworld!"!A |O compiler
   |b+-N ls.c  1/2sA:P:|" ls.o (R)EuoYENI?u>>~!A^3o(R)E
   1/2D-|AP:]CUR@|, !S:make buildworld!"!A|p-aG compiler "IuM|b|P
   1/4E-a-o|aCUReuo YENIDEGYAD!A"-o>>o'NNOTOu{|! 1/2X|^3DEGYAD!D-!D-
   1/2D-S:o.s`i(c)l 1/2XuM<<a|A,O,ONOTY!C|O|p-aG compiler
   NOTO|b"a:YENL-a-o|aCUReuoYENI?u>>~!A"-o>>o'XYENGYENiYENH
   1/2T(c)wNOTOuwAAe-a-oDEGYADCURF!C

   +-z^3o(R)EA^3,ODEGuCURDEG>>o!G

   |p-aGNOTO^2A:CUR@-oO/+-!S:I!AYENiYENH"IYENICUR@"C,
   debugger!A|p!Ggdb!A"OS:a:YENXu{|!
   NOTO|b"-o"`a.|YENh^1A,O|s"u?u>>~-a-oDEGO 3/4D-AAe|`iS:}!AuM<<a|A
   *YEN?YEN|!C

   |p-aGNOTO^2A:CURG-oO/+-!S:I!A'N>>YnAENOTdNOTYNOTYNOTOCUR-L-NOTOuwAAe-a-oDEGYADCURF!C

   CUR@"C,^3y|"uwAAeCUR-L-A-a-o`i|]YEN]NOTA!G

    1. YENi-`aNOTOuw-oD-^1L 1/4o:!G 1/2D-AENOTd
       3/4-:'ssCUR-o-a-o.(R)DEGNOTOS:_^1BS:@YEN?+-`!A|]NOTDEG+-z
       -a-ouw-oD-!](c)I-aIAU|^3"a:YENL-a-ouwAAe,E,m!^^1L 1/4o:CURF!C

    2. ^3B^2z 3/4^1^1L
       1/4o:!G^3oO|^3YENi-`aNOTO|]NOTDEGP:WAW!A(c)I-aINOTO^3B^2z
       3/4^1-a-o.(R)DEG+- 3/4CURF!C CUR-L- 1/2
       *NOTOth-oO/`i|]!A+-z^3-L->>Yn+-N(c)O|^3-a-oCUR,YENo|^'_"`iYEN|I`iYENy^3](c)w-a-oCURuS:@-aNOT
       -oA!A^3o 1/4ECUR~-`a,N"M^3oODEGYAD!CA|O"OCURl"O>>!!G+-N^3B^2z
       3/4^1 1/2O|^`iYENy-a-oCURuS:@ AW^2v!C

       |p-aG+-zAUNOTODEGi<<unP:WAW-a-o,U:!A
       1/2D-AODEGO!A>>P"a:?NAa|O>>Yn'<<.s-a-oCUR@YENx YEND
       3/4-:!ACUR-L-|p+-N^3t<< *
       1/2O-oCCUR@AI!IDEG-L-|^1CURS:YEN~!ACUR-L--oTHS:AA:+-+-oYEN||wCUR-L-|wYENth!ACUR@-e
       CURH^1i(c)o+-z|]NOTDEGP:WAW|OuoYENI-a-oDEGYAD!ANOTOCUR-L-.||^3CURDEG>>o|P+-!CURss-a-o!C

    3. CUR-L-A(c)w-a-oDEGO 3/4D-AAe!G|p-aGYEND 3/4-:CURW|^3|w,E
       1/4AE(R)U SIMM/DIMM DEGO 3/4D-AAe!A
       ,OuUS:aYEN|IYENth(c)iCURU"O!AuM<<aCUR@(R)UCUR@(R)U'!CURWYENhDEGu'u,O!AAC,|^1AYCURp
       1/2d^3o!A YENH<<KS:a:YENX|^3DEGYAD-a-oNOTY(R)UDEGO
       3/4D-AAe(c)INOTONOTY-oO/DEGO 3/4D-AAe^2O|X!C

    4. ^3I"ICURAE^1LAY-a-oYEND 3/4-:-aO^3](c)w!G|b BIOS
       &#65533;(c)INOTO|^3"C,YEND 3/4-:-aO-a-o jumper
       CURW!A|^3(R)EYENiYENHS:oS:iCUR@"C, timing!A|y|bCURj|h
       1/4AE-a-o+-!S:I&#65533;!A"IYENI^1w^3]E'N
       CURw,g"NOTDEG-:CURF!C-apYENB|^3(R)EOS:a RAM -a-o wait states
       ^3]CUROCURp!A(c)INOTO|b BIOS &#65533;!AS:a !S:RAM Speed:
       Turbo!" ^3oO(c)INOTO"a:YENLAth|u:
       -a-o?iP:uYEN'P:}^3-L-|^3YENi-`a.|^3y|"CUR@"C,CUR-L-YEN?+-`-a-o^2{P:H!CCUR@O,N"M-a-oCURe-akNOTOS:a
       BIOS
       ^3]|^^1w^3]E!ACUR-L-^1L|b^3oCURS:<<eDEGO+-oYENyDEGOCURUYENO/<<e-a-o^3](c)w!I

    5. "Nu^1YEND
       3/4-:-aO-a-o^1qCUROCUR-L-DEG(R)^2b(c)INOTOCUR-L-"NOT!C,OuUS:a"t^2ICUR-o"S|^3YENI"`i-a-o
       I/O YENd!Duw-oD-(c)INOTO CDROM  1/4E(R)E(c)i+-
       1/4(c)INOTO(c)TH+- 1/4^1q. 1/2 1/2u!ANOTYNOTYS:A-a-o^1q. 1/2
       "NA^3
       3/4^1NOTOCUR-L-NOTO-`aDEG-:|bCURpCUR@AI-a-ot^2u:CURUYEN?+-`CURuS:@!CCUR-L-uM'NNOTO'<<CURWYENtCUR@
       O.s-a-o^1q. 1/2"NA^3 3/4^1!A^3I|nNOTOYENE
       1/4AEDEG-aCUR@AI-a-o!]YEN'OCURnCURe"O>>!!A|p-aG`i YENy-a-o^1q.
       1/2"NA^3 3/4^1NOTO 250 YENE-a-o!A"-o>>o'N'<<CURW 300
       YENE-a-o,O,O!^!C

   1/2D-P:P:<<KDEGN 3/4\ SIG11
   FAQ!]^3su^2|bCURU+-!^!AAo:uMYEN|NOTO-,|b Linux -a-o"CUR << *
   1/4g-a-o!AYENiNOTO,I+-^1i^3o"C,DEGYAD|^3^3\|h<<U:'I-a-o,N>>!!CYEN|,I+-CUR]|^3DEGQ
   1/2 *NOTDEGCURDEG>>o |^3DEGYAD-a-oDEGO
   3/4D-AAe-`a^3q^1L^3nAAe(c)IuwAAe-a-o'u,O-a-o`i|]!C

   ^3I<<a!A|p-aGCURW+-^3o"C,`i|]^3-L-+-AEDEG-L-CURF!A"-o>>o|^3YENi-`aNOTO^1J"`iCURF
   FreeBSD &#65533;-a-oCUR@DEG|-a:AI!A 1/2D-DEGN
   3/4\<<u:YENU:DEGuCUR@ODEGYAD|^^3o/!C

   ^3o"`a|^3CUR@OS:o,O^2O-a-o FAQ !D- the SIG11 problem FAQ

   5.8. .i 3/4-:(R)EYENX^2{!G!S:Fatal trap 12: page fault in kernel
   mode!" !A(c)INOTO !S:panic:!"
   YENHCURICUR@DEGi?u>>~DEGT(R)S:!A,O<<c,>>o?`i!H

   FreeBSD -a-oP:}uo-aI^1i(c)o^3o"C,?u>>~DEGT(R)S:NOTU.i-a-o|^3?^3
   1/2`i!A|yNOTOYENLI>>Yn S:o,O^2O-a-oCUR@"C,^2O,`!C
   1/2D-S:a+-z-a-o.i 3/4-:-a-oDEGT(R)S:YENth^3!
   1/2AE>>sCURU"O!A+-uuUNOTd 3/4\ FAQ &#65533; kernel panics
   ^3o,`!A"I>>!(c)u 1/2sA:P:CUR@OS:tDEG-L-?u 1/2X-a-o
   kernel!AYENH"u+-o"c,|!
   (c)IYENsP:P:S:C,!]backtrace!^!C^3oOAAYENDEG_"O<<U:Ao/!A|y^1e>>UCURW"ACUR-L->>YnYENo|ou{|!
   ^3]p-a-o-`aCURO!A+-zYENu>>Yn"I.O<<u:YENU:DEGuS:YYENi!C

   5.9. NOTDEGCURDEG>>o.iS:UP:}
   3/4-:(R)E!A?A^1oAAU:P:A!AYENBCUR-L-DEG+-DEG{DEGE!H

   ^3oODEGYAD!ACURw-a 3/4NOTOYENN ATI Mach 64
   AAaYENU:YENd(c)OCURTHDEG_-a-o!C|]NOTDEG^3oP:oYENd "IYENI"`i 2e8
   ^3oO|`iS:}!A|O^3o>>P^2A:YEN|OS:C,|CDEGd- !]serial
   port!^(c)O"IYENI-a-o|`iS:}NOTU|P!C|O|b sio(4) ^3oOAAXDEGE
   u{|!&#65533;!ACUR-L--a 3/4^1DNOTO bug
   (c)INOTOYEN\-`a!]feature!^!A'N-oa+-z"S|^3^2A:YEN|OS:C,
   |CDEGd-!A(c)INOTOCURw,g+-N
   sio3!]^2A:YEN|OS:C,|CDEGd-!^"u(R)o/CURF!AYEN|
   "IuM.|YENh^1A,OAAXDEGEYEN|!C

   -a 1/2"`i^3oODEGYAD^3Q,N"MYENH<<e!A+-zYENiYENH"IYENI^3oOCURe-ak!G

    1. |bNOTY"`iP:} 3/4-:'-L-YENU:(R)E?eCURJ -c !]^3o.|AAy kernel
       P:iCURJ^3](c)w 1/4O|!!^!C

    2. "u(R)o/ sio0 !A sio1 !A sio2 (c)M sio3!]YENth^3!!^!C
       ^3oYENiYENHAAy sio AAXDEGEu{|!CUR-L-DEGES:@ ->
       (c)oNOTODEGYAD,N"M!C

    3. ?eCURJ exit YENHA:~A:o+-ODEGEu{S:C,!C

   |p-aG+-z.Qn"IYENI+-z-a-oS:C,|CDEGd-!A+-z>>Yn *S:i
   /usr/src/sys/i386/isa/sio.c!A|b,OAECURCURS:a:YENX 0x2e8
   ^3oO|r|e!A^2 3/4DEG-L-^3oO|r|eCURIYEN|<<e+--a-o^3r,^1
   !]<<O-d<<a+--a-o!^!AuM<<a<<.s 1/2sA:P:CUR@O.s-a-o kernel!C

   'N-oa"IYENICURFCURW+-^3o"C,CURe-ak!AX Window
   CUR'uM|^3YENi-`auL-akP:P:S:QDEGo|ae!C
   |p-aGuoYENICURF^3o-oO/+-!S:I!A 1/2D- 1/2T(c)wS:AYENI-a-o XFree86
   -a-o-a(c)YEN>>NOTO^3I.s-a-o XFree86 3.3.3
   (c)INOTO"a:<<a-a-o-a(c)YEN>>!CYEN|I|^3CUR-o<<O/CURa:'(c) Mach 64
   ^3o+-iYENd!ANOTAE|U:NOTDEGCURF^3o "C,YENdAU-ath|^3CUR@O-SS:O-a-o X
   Server

   5.10. NOTDEGCURDEG>>oS:U-a-o"t^2I,E|^3 128 MB -a-o RAM!A|O FreeBSD
   YENuYENICURF"a:CURCUR-a-o 64MB!H

   |]NOTDEG FreeBSD NOTO"IYENI(c)IYENs BIOS "O"u+-oDEGO
   3/4D-AAeCURjCURp-a-oCURe-ak!A|]|^1YEN| YENu-`aDEG>>'u"`i 16 bits
   |`iCUR,-ao/<< *-a-o KByte CURjCURp!]65535 KBytes = 64MB!^
   !](c)I-aIS:oCURO:..!C|^3"C, BIOS +-N^3IDEG-aDEGO
   3/4D-AAeCURjCURpNOTDEGYENu|^3 16MB!^ |p-aG+-z 3/4O:|^3 64MB
   YENHCURW-a-o RAM!AFreeBSD
   .|^1A,OYENhDEG>>'uYENXYEN|!A|yNOTO|^3YENi-`a .|YEN-c-+-N!C

   n,N"M^3oODEGYAD!A+-z>>Yn"IYENICURU+-(c)O'-L--a-o kernel
   ^3](c)w?iP:u!CAo:uM|^3 CURe-akYENiYENH+-q BIOS CURCUR"u+-oDEGO
   3/4D-AAe-a-oS:^1 3/4a,eDEGT!A|yNOTOYENO/<<eS:UI|bP:}
   3/4-:DEGICURCUR"A "S|^3|h
   3/4l-a-o-aAAP:!"ODEGu^3oYENo"AE!C.iNOTYCURNP:}
   3/4-:DEGI-aAAP:!CUR-L-"NOT-a-o+-!S:IAo+-o,N"M(R)E!A
   S:UI+-N.|"IYENI BIOS -a-o(c)u|uYEN\-`a"O"u+-oDEGO 3/4D-AAe-a-oS:^1
   3/4a,eDEGT...|y^2{|bS:UI +-NYEN|(c)n|b kernel ^3](c)w?iP:uCURCUR!C

   options "MAXMEM=n"

   n NOTO<<u:+-z-a-oDEGO 3/4D-AAeCURjCURp!AYENH KB
   NOTDEG^3ae|`i!CYENHCUR@YENx|^3 128MB RAM -a-o 3/4-:
   3/4^1"O>>!!A+-zYENi"IYENI 131072^3oO 1/4AE|r!C

   5.11.  3/4-: 3/4^1CURW-a-o RAM |^3 1GB
   YENHCURW!AYENiNOTONOTDEG|o<<o|NOT"`i !S:kmem_map too small!" -a-o
   panic ?u>>~DEGT(R)S:!H

   ^3q+-` FreeBSD .|"I 3/4U 3/4-: 3/4^1-aNOT-ap"O|UDEGE 1/2O 3/4a
   kernel NOTUAo:DEGN 1/4AE^3](c)w!ACURn|p!G (R)U 3/4U 3/4-:
   3/4^1(c)O,E-a-o RAM CURjCURp"O"M(c)w|P(R)EYENiP:}+-O-a-oAE(R) *
   1/4AEP:q|h^1e!C uM|O!A|b 1GB RAM(S:tYENHCURW) -a-o 3/4-:
   3/4^1CURW!A^3oO!y|UDEGE 1/2O 3/4a!z-a-o
   3/4-:"iYENi-`a|^3(R)E.|DEG-a|o!G CURnCURe>>!..P:}
   3/4-:(R)E!Akernel
   .|YENyDEGt,m|U-oO/CUR-L-|PYENI^3~-a-o-ai(R)aeCURI"a:YENLNOT[-oc(c)n"`iDEGO
   3/4D-AAeCURW!A uM<<a!A.i
   3/4aOS:@.~"t^2I^3-L-P:}(c)l^1BS:@CURS:<<a!Akernel
   'N.|P:}(c)lCUR-L-DEG-:-aAAP:!"ODEGuDEGO 3/4D-AAeDEGt,m-a-oDEGE-oA
   1/2O 3/4a!A (c)oNOTO'N panic +- 3/4CURF!C

   ,N-akNOTO!GS:a VM_KMEM_SIZE_MAX YEN["`i kernel ^3](c)wAECUR-o!A
   "A<<.s 1/2sA:P: kernel!ACURn|p!G

   options VM_KMEM_SIZE_MAX=419430400

   ^3o 1/4E.|^3](c)w 400 MB "Ou^1 kernel "IYENI!A|OYENB+-A:YENI
   400 MB -a-o,U:!A YENO/<<e|b 6GB RAM -a-o 3/4-:
   3/4^1CURW^3-L-YENi^3Q|^3(R)A:^1BYENI!C

   5.12.  3/4-: 3/4^1CURW RAM CUR-L-"`i 1GB !A|yCUR'.|YENX^2{
   !S:kmem_map too small!!" -a-o panic ?u>>~DEGT(R)S:

   CURS:(c)OYENH panic -a-o`i|]|b(c)o"t^2IYENIYENuCURFu^1 network
   buffer YENI^3~-a-o virtual memory (CUR *"a:NOTO mbuf
   clusters)!C,N-akNOTO 1/4WYEN[u^1 mbuf clusters YENI-a-o virtual
   memory  1/4AEP:q!A^3o"BAEJ 1/2D-DEGN 3/4\ FreeBSD
   "IYENICURaYENU-a-o -oo,o"i 1/2g !C

   5.13. NOTDEGCURDEG>>oS:UCUR@-a 1/2NOTY"`i !S:/kernel: proc: table
   is full!" ^3oO?u>>~DEGT(R)S:!H

   FreeBSD kernel YENuCUR^1^3\CUR@(c)w 1/4AEP:q-a-o process
   |b|PCUR@(R)EP:!,I|P (R)E^1BS:@!C|O^3oO 1/4AEYENO/NOTO(R)U 3/4U
   kernel ^3](c)wAE,I+--a-o MAXUSERS E"O"M(c)w-a-o!CMAXUSERS
   ^3oOECUR].| 1/4vAAT"a:YENL-a-o kernel CUR-o(c)wE!ACURn|p>>!
   network buffer ( 1/2D-DEGN 3/4\^3oOCURS:<<eDEGQ  1/2
   *^1L-a-oDEGYAD)!C|p-aG 3/4-:
   3/4^1t^2u:(load)<<U:<<!A+-zYENi-`a>>Yn 1/4WYEN[ MAXUSERS
   ^3oOE!C^3o>>oS:@.|CUR@"O:'-L-DEG-a"t^2I-a-o"a:YENLCUR-o
   (c)wE!AYEN]NOTA^3ICURjYENi 3/4O:|^3-a-o process  1/4AEuYEN!C

   Yn 1/2O 3/4a MAXUSERS!A 1/2D-DEGN 3/4\ FreeBSD
   "IYENICURaYENUCURCUR-a-o AE(R) */Process-a-o"i ^3^1,`!C
   (Ao:uM,O^3B<<u:-a-oNOTO!yAE(R) *-a-oP:}+-O 1/4AEP:q"i!z!A|yCUR]
   3/4AYENI(c)o process^3!CURA!C)

   |b FreeBSD 4.4 CURS:<<a!AMAXUSERS CURw,gAAU:|"YENi YENH
   3/4auUS:oS:i /boot/loader.conf &#65533;-a-o kern.maxusers ^3oOE|O
   1/2O 3/4a-a-oAAU: 1/4AECURF!C|O|bCURS:<<e -a-o FreeBSD
   -a(c)YEN>>CURCUR!A^3oOEYENu-`a|b kernel ^3](c)wAE&#65533; 1/2O
   3/4a!C

   |p-aG 3/4-:
   3/4^1t^2u:"ACUR-L-<<!A|O+-zYENuNOTO>>Yn|P(R)EP:]<<U:|h<<U:|h
   process!A "-o>>oCUR]YENiYENH-a 1/2+-uYENI sysctl  1/2O 3/4a
   kern.maxproc E!C DEG^2|p^3o"C, process
   ^3-L-NOTOA:Y(c)oNOTYO"IYENI-aI-a-o!A"-o>>o+-zAU>>YnYENt YEN~ 1/2O
   3/4a kern.maxprocperuid ^3oOE!A"IYEN|CURn.s -a-o kern.maxproc
   ^3oOECURO: 1 (CUR@(c)wnCURO: 1 !A |]NOTDEG init(8)
   ^3oO"t^2Iu{|!u'^1in<<O<<u|b^1BS:@-aNOT-oA)!C

   |p-aG.Q|b"C|,P:} 3/4-:^3-L-nS:oS:i sysctl -a-oE!A|OYENB+-z-a-o
   FreeBSD NOTO ^3I-an-a-o-a(c)YEN>>-a-o,U:!A 1/2D-|b
   /etc/sysctl.conf ^3o
   OAECURCUR^3](c)w!A|O|p-aGNOTOAA-a-o-a(c)YEN>>!AYENiYENH|b
   /etc/rc.local CURCURS:@^3](c)w!C

   5.14. NOTDEGCURDEG>>oYENI.s kernel P:} 3/4-:(R)E!AYENX^2{ !S:CMAP
   busy!" ^3oO?u>>~DEGT(R)S:!H

   YENI"ODEG>>'u /var/db/kvm_*.db ^1L(R)EAE(R) *-a-o
   3/4-:"iDEG,-o,.|uoYENIDEGYAD!A|O"IYENI"`iCURFCUR@OCUR-L-"o 1/2O
   (mismatch)-a-oAE(R) *|^3(R)E'N.| 3/4EP panic!C

   |p-aGuoYENICURF^3oODEGYAD!A 1/2D-<<.sP:} 3/4-:!AP:iCURJ single
   "IYENI-aI 1/4O|!!AuM<<aDEGo|ae!G

 # rm /var/db/kvm_*.db

   5.15.  1/2D-DEGY^3oODEGT(R)S:!G!S:ahc0: brkadrint, Illegal Host
   Access at seqaddr 0x0!" NOTOCURDEG>>o.N<<a:!H

   ^3oNOTOCUR@O(c)M Ultrastor SCSI +-+-"iYENd|^3Ao:-a-o
   1/2A:NOTd-!]conflict!^!C

   |bP:} 3/4-:(R)E!AP:iCURJ kernel ^3](c)w?i^3ae"u(R)o/
   uha0!AYEN|NOTO^3y|"^3oODEGYAD-a-o`i|]!C

   5.16. P:} 3/4-:(R)E!ANOTY"`i^3oO?u>>~DEGT(R)S: !S:ahc0: illegal
   cable configuration!"!C S:U-a-o+-AE 1/2u 1/2T(c)w|^3+-u^1i!C
   NOTOYENXCURFCURDEG>>oDEGYAD(c)O!H

   +-z-a-oYEND 3/4-:-aOYENi-`aCUR-L-CURa:'(c)|UDEGE^2
   *-oY^1q-ay^3](c)w!C 1/2D-P:i"`i SCSI -a-o BIOS
   ,I+-CURaDEGE<<u:(c)wYEN? 1/2T-a-o^2
   *-oY^1q-ayP:P:S:C,!A|OCUR-L-n"IYENI|UDEGE^3](c)w!C AIC7XXX
   -a-oAAXDEGEu{|!"AuL-ak-a 3/4^1D|^3"S|^3^3o"C,+-AE
   1/2uDEG>>'u(YENHCURI|UDEGE^2 *-oY^1q-ay^3](c)w)-a-o^1q,o(external
   logic) |s|b!C|p-aG EEPROM ,I+--a-o^3](c)wNOTO "automatic
   termination"
   (R)E!AYEN|YENu.|^3ae-ADEG^2(c)w^3o"C,^1q,o.iuMNOTO|s|b-a-o!C
   Y-ECURO:CURF^3oO^1q,o!AAAXDEGEu{|!|b^3](c)w^2
   *-oY^1q-ay(R)E'N+-`+-`YENXDEGYAD!C |O^3o-oO/DEGYAD+-N 3/4EP SCSI
   P: *NOTy+-AE-a-oYENi 3/4a(c)EDEGS:C!C

   5.17. NOTDEGCURDEG>>o Sendmail CUR@-a 1/2YENX^2{ !S:!S:mail loops
   back to myself!"!" ^3oO?u>>~DEGT(R)S:!H

   ^3oODEGYAD|b sendmail -a-o FAQ CURCURNOTO^3o 1/4E|^u-a-a-o:-

           * S:UCUR@-a
   1/2|NOT"`i|^3Ao: "Local configuration error" -a-o<<HYENo!A"O|p!G

           553 relay.domain.net config error: mail loops back to myself
           554 <user@domain.net>... Local configuration error

           S:Un|p|o,N"M^3oODEGYAD!H

           +-zS:QYENI MX ^3](c)w!AAAyn+-H"`iNOTY domain!]|p: domain.net!^-a-o<<HYENo!A
           +-H"`i+-z(c)O<<u:(c)w-a-o 3/4-:
   3/4^1!]|b^3oO"OCURlCURCURNOTDEG relay.domain.net!^!A|yNOTO^3o
           ^3! 3/4-: 3/4^1"AYEN
   1/4^3Q^3](c)w+-u"u: domain.net -a-o<<HYENo!C
   1/2D-S:a domain.net YEN["`i
           /etc/sendmail.cw CURCUR!]|p-aG+-z|^3"IYENI FEATURE(use_cw_file)) (c)INOTO
           |b sendmail.cf CURCURYEN[CURJ "Cw domain.net"
               

   ^3I.s-a(c)YEN>>-a-o sendmail FAQ ^2{|bCURwCUR-L-|AAHuU sendmail
   !S:YENX^3f!"!C YEN|YENO/<<eNOTO^3Q(c)w'A-a-ouo-ai|b
   comp.mail.sendmail!A
   comp.mail.misc!Acomp.mail.smail!Acomp.answers!A(c)M news.answers.
   +-zCUR]YENiYENH+-HCUR@<<E Email "`i
   <mail-server@rtfm.mit.edu>!AuM<<a|b<<HYENoCUR-oCURaa CURCUR
   1/4gCURW send usenet/news.answers/mail/sendmail-faq
   YENH"u+-o^3oYEN-: FAQ CURaaYENo!C

   5.18. NOTDEGCURDEG>>oDEGo|ae>>.-oY 3/4-: 3/4^1!]remote
   machine!^-a-oYENth?A^1o-a-o^3nAAe(R)E!A
   |^3CUR-L-YEN?+-`-a-o+-!S:I!H

   (c)I^3\>>.-oY 3/4-: 3/4^1"A<<D+-N+-z-a-o^2 *-oY 3/4-:
   1/4O|!^3]NOTDEG FreeBSD console (c)OYENI-a-o
   cons25!A|ONOTO^3]NOTDEG"a:YEN| 1/4O|!!C

   ^3o"`a|^3'XO,N"M^3oODEGYAD-a-oCURe-ak!G

     * |b logging P:i>>.-oY 3/4-: 3/4^1<<a!AS:oS:i+-z-a-o shell AAU:
       1/4AE TERM NOTDEG ansi (c)INOTO sco !}|p-aG>>.-oY 3/4-:
       3/4^1CURa:'(c)^3o"C, 1/4O|!-a-o,U:!^!C

     * "IYENICURa:'(c) VT100 -a-o 1/4OAA^3nAAe!A|p FreeBSD console
       CURU-a-o screen ^3nAAe!C screen '-L-"N+-z|bCUR@O terminal
       &#65533;|P(R)EP:]|n'XO session
       -a-o-`aCURO!A|OYENBYEN|YEN>>"CUR]NOTOCUR@ONOTU.i|n
       -a-o^3nAAe!C"CO screen ^3-L-^1^3NOTOCUR@O VT100 -a-o^2 *-oY
       3/4-:!A(c)OYENH>>.-oY 3/4-: 3/4^1-a-o TERM AAU:
       1/4AEA^3,O^3]NOTDEG vt100!C

     * |b>>.-oY 3/4-: 3/4^1-a-o^2 *-oY 3/4-:,e(R)AE(R)w!]terminal
       database!^CURCURYEN[CURJ cons25
       -a-o,e(R)AE!CYEN[CURJ-a-oCURe-akuo/>>.-oY 3/4-: 3/4^1-a-o
       S:@.~"t^2ICUR-L-|P|O|^3(c)O(R)t^2S:!C 1/2D-DEGN 3/4\>>.-oY
       3/4-: 3/4^1u^1"t^2I-oTH^2zu-a-o>>!(c)u
       (R)N!AA^3,O.||^3(c)OADEGS:U!C

     * +-ODEGE FreeBSD -a-o X |o/-aA 3/4^1!AuM<<a"IYENICUR@"C, X
       Window CURU-a-o ^2 *-oY 3/4-: 1/4OAA 3/4^1"OunCURJ>>.-oY 3/4-:
       3/4^1!A"O|p xterm (c)I rxvt!C|O>>.-oY 3/4-: 3/4^1-a-o TERM
       AAU: 1/4AEA^3,On ^3]NOTDEG xterm (c)I vt100!C

   5.19. NOTDEGCURDEG>>oS:U-a-o 3/4-: 3/4^1CUR@-a 1/2AAaYENU:
   !S:calcru: negative time...!"!H

   ,oCURCURA_!]interrupt!^|^3Ao:-a-oCUR-L-|PuwAAe >>P/(c)I
   ^3nAAe-a-o.fDEGt^3-L-|^3YENi-`a^3y|" ^3oODEGYAD!C^3o|^3YENi-`aNOTO
   bug (c)INOTONOTYO,E,mYEN>>"-a-oDEGYAD!C|bYEN|aeDEGd-CURW"IYENI
   CURj-a-o MTU "OS:@ TCP/IP
   P:C,?eYENiYENH<<^2{^3oODEGYAD!CYNOTO^1IS:IYEN[^3tYENd^3y|"^3oO
   DEGYAD-a-o,U:!A+-zA^3,OYENyAENOTdYENd-a-oCURCURA_^3](c)w!C

   ^3oODEGYAD-a-oAa:>>U(R)A:A^3NOTO.|^3y|"|^3"C, process YENX^2{
   !S:SIGXCPU exceeded cpu time limit!"
   -a-oDEGT(R)S:!A|OCUR-L-YEN?+-` DEG+-CURi!C

   YNOTO FreeBSD 3.0 (c)INOTO 1998 |~ 11 CURe 29
   CUReYENH<<a"a:YENL-a(c)YEN>>!A,UCUR@ ^3oODEGYADCUR@-a
   1/2uL-akYENH"a:YENLCURe-ak,N"M!A'NYENu-`a^3](c)w sysctl AAU:
   1/4AE!G

 # sysctl -w kern.timecounter.method=1

   ^3o 1/4E.|^1i(R)A:-`a|^3"C, 1/4vAAT!A|yNOTOY|O
   1/4{"`i^3oODEGYAD+-a"O-a-o<<a-aG!A^3o 1/4EDEGu
   NOTOE+-o-a-o!C|p-aG^3oODEGYADAUNOTO|s|b-a-o,U:!AAAy sysctl
   "-oOE"IuM^3]NOTDEG 1!A uM<<a 1/4WYEN[ kernel ^3](c)wAECURCUR
   NTIMECOUNTER ^3oO?i P:u-a-o 1/4AEE!C|p-aG+-z+-N NTIMECOUNTER 
   1/4WYEN["`i 20 "I uMuL-ak,N"M^3oODEGYAD!A"-o>>o+-z 3/4-:
   3/4^1CURW-a-oCURCURA_CURw,g|h"`iuL-akAAyp 1/4AE 3/4^1-ou<<u|b YENi
   3/4a-a-o-aNOT-oACURF!C

   5.20. YENX^2{ !S:pcm0 not found!" ^3oODEGT(R)S:!A(c)I-aINOTO
   S:U-a-ou(R)A:YENdAAU:|"CURF pcm1!A|y|b kernel ^3](c)w
   AE&#65533;S:UNOTO^3] device pcm0 DEGU!C^3oNOTO<<c,>>o|^"AE(c)O!H

   |p-aG+-z|b FreeBSD 3.x CURW"IYENI PCI
   u(R)A:YENd'N.|uoYENI^3o-oO/DEGYAD!C |]NOTDEGpcm0 ^3oO device
   NOTOCUR-o(c)w<<O-du^1 ISA
   -a-ou(R)A:YENd-a-o!A(c)OYENH|p-aG+-z|^3CUR@+-i PCI
   -a-ou(R)A:YENd!A+-z'N.|^1J"`i^3oODEGYAD!A |O+-z-a-oYENd.|AAU:|"
   pcm1!C

     Note: |p-aG+-zYENuS:a kernel ^3](c)wAECURCUR-a-o^3](c)wS:i|"
     device pcm1 NOTOuL-akDEG-L-YENh^3oOA:uS:iDEGT(R)S:-a-o!A ^3o
     1/4E.|^3y|" pcm1 ^3Q<<O-du^1 ISA u(R)A:YENd!A |O PCI
     u(R)A:YENd<<h.|AAU:|" pcm2 !]YEN~YEN[ !S:pcm1 not found!"
     -a-oA:uS:iDEGT(R)S:!^!C

   |p-aG+-z|^3CUR@+-i PCI -a-ou(R)A:YENd!A+-z>>Yn make snd1 ^3oO
   device!A|OCUR-L-NOTO snd0!G

 # cd /dev
 # ./MAKEDEV snd1

   ^3oODEGYAD|b FreeBSD 4.x
   CURW"ACUR-L-.|uoYENI!A|]NOTDEG<<U:|hCURHS:eCURUCURF^3\|hCURss
   CUROAAyYEN|S:oPnP  3/4E|V!A|OYENB pcm0 ^3oO device
   CUR]CUR-L-|ANOTOYENu<<O-du^1 ISA -a-ou(R)A:YENdCURF!C

   5.21. NOTDEGCURDEG>>o|bS:o.s"`i FreeBSD 4.X
   <<a.|S:`iCUR-L-"`iS:U-a-o PnP YENd !](c)I-aINOTOS:`i|" unknown!^!H

   FreeBSD 4.X ^2{|bCURw,gS:o PnP  3/4E|VCURF!A
   |OAa:>>U(R)A:A^3'NNOTO.|uoYENI|^3"C,|b FreeBSD 3.X
   YENiYENHYENI-a-o PnP ,E,m !]|pu(R)A:YENd(c)INOTOCUR-o'!|! 1/4AE
   3/4U 3/4-:!^AAU:|"uL-ak"IYENI!C

   ^3oO`i|]YENiYENHYENICUR@<<EYENN Peter Wemm uo"`i freebsd-questions
   ^3oO mailing list
   CURW-a-o<<H"O,NA:A!AYEN|`iYEN>>NOTO,NA:ANOTDEGCURDEG>>o|^3CUR@OCUR-o
   '!|! 1/4AE 3/4U 3/4-:!A|b"t^2ICURE-AA"`i FreeBSD 4.x
   <<a!A'N"S-ak^3QS:`i"`iCURF !]|b []
   &#65533;-a-oNOTOYENtYEN~YEN[-a-ouu,N!AAAyCUR-o(R)eS:o(c)o:A'!^!C

     The PNP bios preconfigured it [the modem] and left it laying
     around in port space!Aso [in 3.x] the old-style ISA probes
     !S:found!" it there.

     Under 4.0!Athe ISA code is much more PnP-centric. It was
     possible [in 3.x] for an ISA probe to find a !S:stray!" device
     and then for the PNP device id to match and then fail due to
     resource conflicts. So!Ait 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.

   |p-aGnAAy,E,m-`a|A<< *^1BS:@!AS:UI>>YnS:a:YENXYEN|-a-o PnP
   id!AuM<<a|A+-NYEN| YEN[CURJCUR@YEN-:|bDEG>>'u ISA
   ,E,m(R)E.|"IYENI-a-o-aiCURCUR!CYENiYENHDEGo|ae pnpinfo(8)
   "ODEG>>'u^3oO,E,m!AA|"O"O>>!!ACURU+-NOTO pnpinfo(8)
   S:`i"`i-a-oCUR@OCUR-o'! |! 1/4AE 3/4U 3/4-:-a-o,e(R)AE!G

 # pnpinfo
 Checking for Plug-n-Play devices...

 Card assigned CSN #1
 Vendor ID PMC2430 (0x3024a341)!ASerial Number 0xffffffff
 PnP Version 1.0!AVendor 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!Aalignment 0x8!Alen 0x8
         [16-bit addr]
     IRQ: 4  - only one type (true/edge)

   [more TAG lines elided]

 TAG End DF
 End Tag

 Successfully got 31 resources!A1 logical fdevs
 -- card select # 0x0001

 CSN PMC2430 (0x3024a341)!ASerial Number 0xffffffff

 Logical device #0
 IO:  0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8
 IRQ 5 0
 DMA 4 0
 IO range check 0x00 activate 0x01

   +-z(c)O>>Yn-a-o,eDEGTNOTOCUR@P:}(c)lNOTY"`i-a-o !S:Vendor ID!"
   ^3oCUR@|ae!CNOTA,^1CURCUR-a-oCURQCUR>>|`iCUR,
   1/2X!]^3oO"OCURlCURCURNOTO 0x3024a341!^'NNOTO PnP
   id!A|O|b^3oCURS:<<e-a-o|r|e!]PMC2430!^<<hNOTOCUR@O?WCUR@uLCURG-a-o
   ASCII id!C |O^3o"C,,e(R)AE>>Yn^3QYEN["`i /usr/src/sys/isa/sio.c
   ^3oOAE(R) *&#65533;!C

   NOTDEGCURF"
   3/4CURiYENo|o-aF|eYENX?u!A+-zA^3,OnYENy^3AEYEN-:YENO/<<e-a-o
   sio.c!C|OYENB+-zn submit PR (R)ECUR]>>Yn^3oO `i(c)lAE(R)
   *"ODEGuYENX patch!]+-zA^3,O.|+-NYEN| submit PR S:a..!G!^..!^!C
   +-uuU'N 1/2s?e sio.c S:a:'MCURU+-^3o|ae

 static struct isa_pnp_id sio_ids[] = {

   +-uuU(c)^1CURU+-^2DEGE!AS:a:OYEN?
   1/2T-a-o|`i,m"O'!CURJ+-z-a-o,E,m,eDEGT!C+-zNOTY"`i-a-o'N
   CURU+-^3oO 1/4ECURl!AYEN|INOTO.OYENkAa:uu,N,I+--a-o ASCII ^3oO
   Vender ID DEGu+-AE S:C,-a-o!A(c)INOTO pnpinfo(8)
   (c)OS:a:"`i-a-oCUR@^3!CURA ,E,m'yz!G

 {0x0f804f3f!ANULL}!A    /* OZO800f - Zoom 2812 (56k Modem) */
 {0x39804f3f!ANULL}!A    /* OZO8039 - Zoom 56k flex */
 {0x3024a341!ANULL}!A    /* PMC2430 - Pace 56 Voice Internal Modem */
 {0x1000eb49!ANULL}!A    /* ROK0010 - Rockwell ? */
 {0x5002734a!ANULL}!A    /* RSS0250 - 5614Jx3(G) Internal Modem */

   S:a+-z^3oO,E,m-a-oCURQCUR>>P:i|`i-a-o Vender ID YEN["`iYEN?
   1/2T-a-o|aCURe!A|sAE!A uM<<a<<.s 1/2sCUR@O kernel!A|A<<P:}
   3/4-:!CCURS:<<a^3oO,E,mA^3,O'N.|^1^3|b FreeBSD 3.X
   CURU!A^3QDEG>>'uNOTDEG sio ,E,mCURF!C

   5.22. NOTDEGCURDEG>>oS:U+-`+-`|bP:]CUR@"C,u{|!!]"O|p top (c)I
   systat!^-a-o(R)EOYENX^2{ !S:nlist failed!" ^3oO?u>>~DEGT(R)S:!H

   ^3oODEGYADNOTO|]NOTDEG+-zP:]-a-ou{|!>>YnCUR@O-SS:O-a-o kernel
   symbol!AYENiNOTO CUR-L--a
   3/4^1DCURDEG>>o`i|]|OS:a:CUR-L-"`i!Q|O.|uoYENI^3oODEGYADYENi-`aNOTO|]NOTDEGCURU+-"aO`i|]!G

     * +-z-a-o kernel (c)M userland -a-oAE(R)
       *-a(c)YEN>>"ACUR-L-CUR@P!]"O|p>>!!A+-z  1/2sCURFCUR@O.s-a-o
       kernel!A|yNOTO"A"S|^3DEGo|ae^1iA^3-a-o
       installworld!A(c)INOTO"a:YENLAth|u:+-!S:I!^!A |]|^1 symbol
       table -a-oCUR-o(R)e'N(c)MA^3YENIu{|!
       1/2sA:P:(R)E-a-oCUR-L-CUROCUR@ 1/4ECURF!C|p
       -aGNOTO^3o-oO/+-!S:I!A 1/2D-DEGo|aeS:^1 3/4a-a-oCURE-AA"BAEJ!]
       1/2D-DEGN 3/4\ /usr/src/UPDATING YENH+-o-a 3/4YEN?
       1/2T-a-oNOTy u{!^!C

     * +-z"S|^3YENI /boot/loader "O,u:CURJ+-z-a-o kernel!A|ONOTO-a
       1/2+-uYENN boot2 P:} 3/4-:!] 1/2D-DEGN 3/4\ boot(8)!^!C
       Ao:uM>>!,o^1L /boot/loader "A"S|^3CURDEG>>o?u!A |yNOTOYEN||b
       kernel symbols ,oA^3YENIu{|!-a-o.
       3/4^3qCURe+-|uCURF<<U:<<-a-oYEN-:P:q!C

   5.23. NOTDEGCURDEG>>oS:UYENI ssh (c)I telnet
   ^3s"`iS:U-a-o^1q,-L-(R)E!A.|uYEN<<Y<<U:-ao/-a-oCUR@NOTq(R)EP:!CUR~-`a^3sCURW!H

   -g-aNOT!GTCP ^3s 1/2u<<O/YENssCURS:<<a(c)M,ssDEGY+-K
   1/2XCURS:<<e!]|p-aGNOTO|b>>! telnet(1) -a-o,U:!A<<hNOTO login
   '-L-YENU:^2AA,^1,oYENX"OCURS:<<e!^!AnuYEN<<Y<<U:-ao/-a-oCUR@NOTq(R)E
   P:!!C

   DEGYAD(c)O|b!G^3o-oO/(c)u?d-+-!S:I+-`+-`NOTO|]NOTDEG|o/-aA^3nAAe!]server
   software!^ ^1A,On+-N<<ECURa-oY!]client!^-a-o IP |`iS:}A`a'<<|"YEND
   3/4-:|W-oU!C|]NOTDEG<<U:|h|o/-aA ^3nAAe!AYEN]NOTA FreeBSD
   CUR-o<<O/-a-o Telnet (c)M SSH!ANOTDEGCURF+-NYEND 3/4-:|W-oU
   1/4gCURJNOTo:
   ?yAECURCURYENH"N-oTH^2z-aIS:@DEGN|O!A|O.|DEGu^3oP:uDEGES:@!C

   ,N"MCURe-ak!G|p-aG^3oODEGYAD|b+-z^3s+-uCUR-L-|P-a-o|o/-aA
   3/4^1(R)E^3-L-.|uoYENI!A"-o>>o
   DEGYADNOTO|b+-z<<ECURa-oY^3oCUR@CURe!Q|P
   1/4E-a-o!A|p-aGS:OCURHYENu|^3|b^3s"`i+-z-a-o|o/-aA 3/4^1CURW
   CUR~.|uoYENI^3oO+-!S:I!A"-o>>oDEGYAD'NNOTO|b|o/-aA
   3/4^1^3oAa:CURF!C

   |p-aGNOTO<<ECURa-oY^3oCURe|^3DEGYAD!ADEGssCUR@-a-oCURe-ak'NNOTO+-N
   DNS |o/-aA 3/4^1 *|n!A ^3o 1/4E^1iCURe|o/-aA 3/4^1CUR~-`aYEN?
   1/2T-a-oA`a'<<|W-oU!C|p-aGDEGYADNOTO|bCUR-o^3!DEGIDEG`i-oo,ouo
   YENI-a-o!A^3oA^3,ONOTO|o/-aA 3/4^1|^3DEGYAD!A
   1/2D-,O^2OAENOTdCUR@CURU!QNOTUCURI-a-o!A|p-aGNOTO+-z |bCURW
   Internet (R)EuoYENI-a-o!A"-o>>o+-z>>Yn,o+-z-a-o ISP Apu,!A
   1/2D-YENLI,N"M ^3oODEGYAD!C

   |p-aGNOTO|o/-aA
   3/4^1^3oAa:-a-oDEGYAD!A|OYENBNOTOuoYENI|bCUR-o^3!DEGIDEG`i-oo,o!A"-o>>o+-z>>Y
   n^3](c)w^3oO|o/-aA 3/4^1!A"IYEN|-`aYEN? 1/2T+-NCUR-o^3!-oo,o-a-o
   IP |`iS:}A`a'<<NOTDEGYEND 3/4-:|W-oU!C  1/2D-DEGN 3/4\ hosts(5)
   (c)M named(8) -a-o>>!(c)uYENHAo+-oS:o|h,eDEGT!C|p -aGNOTO|b
   Internet CURW-a-o|o/-aA
   3/4^1uoYENI^3oODEGYAD!A"-o>>o|^3YENi-`aNOTO+-z|o/-aA 3/4^1-a-o
   A`a'<<YEN\-`aYENXDEGYAD!C+-zYENiYENH,O,ONOTd,ssYENtCUR@OYEND
   3/4-:|W-oU!ACURn|p!G
   www.yahoo.com!C|p-aGNOTdCUR-L-"`i!A"-o>>oYENiYENH
   1/2T(c)wNOTO+-z^3o Aa:YENXDEGYADCURF!C

   5.24. !S:stray IRQ!" ^3oO?u>>~DEGT(R)S:NOTOCURDEG>>o.N<<a:!H

   Stray IRQs NOTOuwAAe IRQ
   |^3AICURpDEGYAD-a-o^2{P:H!ACURj|hNOTO|]NOTDEGuwAAeYEN>>"
   |buoYENXCURCURA_>>Y"D<<a!ACURS"u(R)o/CURFYEN||UCURv-a-oCURCURA_n"D!C

   |^3CURTOCURe-akYENiYENHA^3YENI^3oODEGYAD!G

     * CUR-L-^2z.|^3oOA:uS:i!CCURIYEN?CUR@O irq
       YENX^2{CUR|,A:uS:i<<a"t^2I'NCUR-L-.| |AAAaYENU:CURF!C

     * S:a isa_strayintr() &#65533;-a-oE!AYENN 5 S:i|" 0!A^3o
       1/4E(c)O|^3-a-oA:uS:iDEGT(R)S:^3-L-CUR-L-.|YENX^2{!C

     * |w,E"IYENI irq 7 -a-oYEN|aeDEGd-uwAAe^3]^3AE!AYENHCURIYEN|-a-o
       PPP AAXDEGEu{|!
       !]^3oOCURj^3!CURA"t^2I^3-L-|^3DEGu!^!A+-uuU|w,E ide
       uw-oD-(c)INOTO"a:YENL.|"IYENI irq 15
       -a-ouwAAe^3]^3AEYENHCURIYEN|-a-oAAXDEGEu{|!!C

   5.25. NOTDEGCURDEG>>o !S:file: table is full!" ^3oODEGT(R)S:
   CUR@-a 1/2|b dmesg &#65533;<< 1/2AEYENX^2{!H

   ^3oO?u>>~DEGT(R)S:YENN-aiCURF+-z"t^2I-a-o file descriptors
   CURw,g"IYENIYENuCURF!C  1/2D-DEGN 3/4\CURaYENUCUR-o Tuning Kernel
   Limits ,I+--a-o kern.maxfiles ^3oO^3^1,`!A,I+-|^3CUR@"C,DEGQ 1/2
   *CURI,N"MCURe-ak!C

   5.26. NOTDEGCURDEG>>oS:UuS:DEGO<<NOT^1q,-L-CURW-a-o(R)EA:ACUR@-a
   1/2AAaYENU:?u>>~-a-o(R)EP:!!H

   +-z-a-ouS:DEGO<<NOT^1q,-L-,I|^3"aOYENHCURW-a-o(R)EA:A!A|O FreeBSD
   ?i"`iCURF?u-a-o "-oO!C

   DEGo|ae dmesg(8)!AAENOTdCUR@CURU|^3 Timecounter
   |r|e-a-o"-o'X|ae!C^3I<<aCUR@|aeNOTO FreeBSD ?iYENI-a-o!A^3q+-`NOTO
   TSC!C

 # dmesg | grep Timecounter
 Timecounter "i8254"  frequency 1193182 Hz
 Timecounter "TSC"  frequency 595573479 Hz

   +-zYENiYENHDEGo|ae sysctl(3) NOTYCUR@CURU
   kern.timecounter.hardware ^3oOEDEGu 1/2T>>{!C

 # sysctl kern.timecounter.hardware
 kern.timecounter.hardware: TSC

   BIOS YENi-`a|bCUR@"C,+-!S:ICURU.|S:oS:i TSC
   -a-o(R)E-ss!X!X|^3(R)EONOTO|]NOTDEG
   |b"IYENI^1q|ACURuS:@(R)E.|S:oS:i^3B^2z 3/4^1-a-o^3t<<
   *!AYENtYEN~CUR]|^3YENi-`aNOTOP:iCURJCURFNOTU^1q 1/4O |!!AYENiNOTO
   FreeBSD "ACUR-L-.|^1iA:+-"`i^3o"C, 1/2O 3/4a!A|O.|uoYENI(R)EP:!
   1/4WYEN[(c)INOTO'i CURO:-a-o+-!S:I!C

   |bCURW+--a-o"OCURl.iCURCUR!AS:UINOTY"`iAU|^3 i8254
   ^3oO(R)EA:AYENiYENH?i 3/4U:!ADEGo|ae sysctl(3)
   YENICURaDEGE-a-oCURe|!+-N^3oOE 1/4gCURJ kern.timecounter.hardware
   CURCUR!C

 # sysctl -w kern.timecounter.hardware=i8254
 kern.timecounter.hardware: TSC -> i8254

   ^3o 1/4E+-z-a-ouS:DEGO<<NOT^1q,-L-A^3,O'NYENiYENH<<O<<uYEN?
   1/2T-a-o(R)EP:!CURF!C

   |p-aGnAAy^3oOS:oS:i-a-oDEGES:@|A"C|,P:} 3/4-:(R)E|UDEGEDEGo|ae!A|b
   /etc/sysctl.conf &#65533;YEN[CURJCURU+-^3o|ae!C

 kern.timecounter.hardware=i8254

   5.27. NOTDEGCURDEG>>oS:U-a-ouS:DEGO<<NOT^1q,-L-uL-akYEN?
   1/2T-a-oDEG>>'u"`i PC card !H

   ^3oODEGYAD+-`+-`uoYENI|bA:eCURF|hOS:@.~"t^2I-a-ouS:DEGO<<NOT^1q,-L-CURW!C|^3"C,<<D
   BSD -a-oS:@.~"t^2I.|AAy PC card
   -a-ouwAAe,E,m^3B|bCUR@OCUR-L-CUR@P-a-o-aNOT-oACURU !]inconsistent
   state!^!C"I+-o pccardd |bDEG>> 'u^3oCURuYENd(R)E!AuL-akS:`i"`iYEN?
   1/2T-a-o<<NOT,^1!A|ONOTO !S:"(null)""(null)"!"!C

   +-z>>Yn^2 3/4DEG-L- PC card '! 1/4N-a-o^1q.
   1/2YENH<<,m^3oOuwAAe,E,m!CCUR@OCURe-akNOTO
   +-N+-z-a-ouS:DEGO<<NOT^1q,-L-Ao: 3/4-:!]CUR-L-NOTOYENd--v
   1/4O|!!ACUR]CUR-L-NOTO<<Y(c)R 1/4O|!!QnS:^1YENth-a-oAo: 
   3/4-:!^!CuYENO'XNOTiA:A|A<<P:} 3/4-:!C^3o 1/4E+-z-a-o PC card
   A^3,O'NYEN?+-`CURF!C

   |^3(R)E|^3"C,uS:DEGO<<NOT^1q,-L-Ao:uMNOTYDEG_"OCURw,gAo:
   3/4-:CURF!A|y^1e>>UCURW"A"S|^3!C
   |p-aG+-zuo^2{CURW+-"-oOCURe-ak"S|^3YENI!A 1/2D-Ao: 3/4-:!A^2
   3/4DEG-L-^1q|A!AuYENO'XNOTiA:A!A S:a^1q|A,ECURWYENhuM<<a<<P:}
   3/4-:!C

   5.28. NOTDEGCURDEG>>o|b BIOS ue+-CURS:<<a!AFreeBSD -a-o boot
   loader AAaYENU: !S:Read error!" uM<<a'NDEG+-CURiCUR-L-DEGECURF!H

   ^3oNOTO|]NOTDEGFreeBSD -a-o boot loader uL-akYEN?
   1/2T-a-oS:a:YENXuw-oD--a-o geometry!C^3o 1/4E-a-o,U:!A'N>>Yn|bYENI
   fdisk CURA^3I(c)INOTO *S:i FreeBSD -a-o slice
   (R)E!ACURaDEGE+-NYEN? 1/2T-a-oE?eCURJP:iYENhCURF!C

   YEN? 1/2T-a-ouw-oD- geometry E|b BIOS
   ,I+-YENiYENHNOTd-a-o"`i!C-a`.N,Ouw-oD--a-o cylinders!Aheads
   YENHCURI sectors ^3o"C, 1/4AEE!C

   |bDEGo|ae sysinstall(8)-a-o fdisk (R)E!A<<o:CURU G
   YENH<<KCURaDEGE^3](c)wuw-oD--a-o geometry!C

   ^3o(R)E.||^3CUR@O^1i,U:(R)O/,oYENX"O!A,ssDEGY+-z|^3Ao:
   cylinders!Aheads YENHCURI sectors ^3o"C,-aF|e-a-oE!C 1/2D-+-Nee|b
   BIOS NOTd"`i-a-o 1/4AE|r!AYENH / S:@CURA^1j?e CURJP:iYENh!C

   A|"O"O>>!!A|p-aGNOTO 5000 cylinders!A250 sectors (c)M 60 sectors
   'N?eCURJ 5000/250/60

   ?eCURJS:^1<<a 1/2D-<<o: enter Aa: 1/2T>>{!A^3I<<a<<o:CURU W Aa:S:a
   .s-a-oCURA^3IDEGI-ai 1/4gCURJuw-oD-.iCURCUR!C

   5.29. YENtCUR@OS:@.~"t^2I-oR.'CURFS:U-a-o Boot
   Manager!CS:Un<<c,>>o 1/4ECUR~-`aS:aYEN|AU `i|^"O!H

   DEGo|ae sysinstall(8) +-uuU?i Configure!AuM<<a?i Fdisk!C
   |A"OYENI-aAAYENOAa:?i 3/4U:`iYENy Boot Manager (c)O|b-a-ouw-oD-!C
   <<o:CURU W Aa:"OS:@
   1/4gCURJ-a-oDEGES:@!C^3o(R)E.|,oYENXCUR@O'-L-YENU:
   DEGT(R)S:!A,ssDEGY+-zn|w,EthCUR@O boot loader!C 1/2D-?i 3/4U: Boot
   Manager!A ^3o 1/4E'NYENiYENH+-NYEN|AU`iCURF!C

   5.30. ^3oO?u>>~DEGT(R)S:!G!S:swap_pager: indefinite wait buffer:!"
   NOTOCURDEG>>o.N<<a:(c)O!H

   ^3oODEGT(R)S:NOTO>>!|^3CUR@ODEGo|aeu{S:C,YEN?|b^1A,O+-NCURAP:DEGO
   3/4D-AAe!]page memory!^ 
   1/4gCURJuw-oD-CURCUR!A|O^3oODEGES:@^1A,OCURF 20
   NOTiA:ACUR'uMuL-ak|"YEN\!C^3oO|^3YENi-`aNOTO|]NOTDEG
   uw-oD-|^3Aay!B^1q,o(c)I+-AE
   1/2u|^3DEGYAD!BYENHCURI"a:YENL,ouw-oD-AA-aYENX
   1/4gCURJ|^3Ao:-a-ouwAAe^3]^3AE!C
   |p-aG-u-a-oNOTOuw-oD-Aay-a-oDEGYAD!A+-zA^3,O.||b
   /var/log/messages^3oOAE(R) *CURCUR!A(c)INOTO|bDEGo|ae
   dmesg^3oO<<u:YENO<<a!ANOTY"`i|^3Ao:-oI-oD-?u>>~-a-oDEGT(R)S:!C
   |p-aG"S|^3!A"-o>>o 1/2D-AENOTd+-z-a-o+-AE
   1/2uAU|^3+-uAY^3s+-uNOTOS:_"}|n!C

   5.31. NOTDEG|o|b buildworld/installworld (R)E!A.|w|b !S:touch: not
   found!" -a-o?u>>~DEGT(R)S:?

   ^3o?u>>~DEGT(R)S:"ACUR-L-NOTO<<u: touch(1)
   u{|!CUR-L-"-L-CURF!A"AE^1eCURWYENi-`aNOTO,OAEAE(R)
   *(R)EP:!^3Q^3]NOTDEGYEN 1/4"O-a-o(R)EP:!!C Y 3/4-: 3/4^1CURW-a-o
   CMOS-clock (R)EA:A^3](c)wNOTDEG.i|a(R)EP:!
   (<<D(R)ae-aL<<A-av(R)EP:!!ACURn|pYENxAEW(R)EP:!NOTDEG GMT +08:00
   !ACUR]'NNOTO CST CURCUR`i 1/4D-.C,(R)EP:!)!A "-o>>o 1/2D-|bP:}
   3/4-:(R)E!AYENy?i single user  1/4O|!P:iCURJ!AuM<<aYEN'
   adjkerntz -i "O 1/2O 3/4a kernel clock >>P 3/4-: 3/4^1CURW-a-o
   CMOS-clock "O|P"B!C

     --------------------------------------------------------------

                         Chapter 6 DEGO.~^3nAAe

   Vanilla Shu

     Note:
     ^3oCUR@,`-a-oCUR-o(R)eAUNOTONOTU.iCURO:!ACUR-L-^1LS:UI.iuMS:AE+-ae|UOCUR
     1/2YENq-`aNOTDEGYEN|YEN[AICUR-o(R)e :) FreeBSD
     ^2OA'(c)M|C|b^3o,I-a-oYENo|oCUR@(R)aCUR
     1/2YENq^3-L-"S|^3-a-:?uCURW-a-oS:Q(R)`Ao:<<Y!A|CYENX"O-A-oeYENuNOTO^1iCURj^2^3CUR
     1/2P:}CURP:^2D-(|P(R)ECUR]>>{NOTDEG|b FreeBSD CURW-a-oDEGO
     3/4-:Y?^3(c)o!A.|^1i FreeBSD
     YENi-ao/YENiCUR[|^3.YENYEN?+--a-o(R)A:-q)!CS:UI^1-aAyDEGO.~^3nAAe-a-o
     1/4tDEGOS:aYENLI-a-o^2-L-<<~YEN]NOTA|bCURU+--a-o|W^3aeCURCUR!A|b
     Vendors page YENiYENHNOTY"`iS:o-ao/-a-o|C-ai!C

   6.1. |bthAa:S:a:"`iu^1 FreeBSD YENI-a-o Office (R)MYENo(c)O!H

   6.2. |bthAa:YENiS:a:"`iu^1 FreeBSD YENI-a-o Motif!H

   6.3. |bthAa:YENiS:a:"`iu^1 FreeBSD YENI-a-o CDE!H

   6.4. |^3"S|^3n?u!A|yNOTODEG-a(R)A:^2v-a-o X servers!H

   6.5. |b FreeBSD CURW|^3YENo|o-a-o,e(R)AE(R)wP:U:!H

   6.6. YENiYENH|b FreeBSD CURWDEGo|ae Oracle P:U:!H

   6.1. |bthAa:S:a:"`iu^1 FreeBSD YENI-a-o Office (R)MYENo(c)O!H

   OpenOffice ^3o(R)M open-source (c)E 1/2e-a-o office YENiYENH|b
   FreeBSD CURWYEN?+-`^1BYENI|U|p!A|O Linux(R) -a(c)-a-o StarOffice,
   ^3o(R)M closed-source -a-o OpenOffice YEN[E-a(c)!ACUR]YENiYENH|b
   FreeBSD CURWYEN?+-`"IYENI!C

   FreeBSD CURWAU|^3^3\|h
   1/2s+-AE^3nAAe!B,O-oa-ai(Spreadsheet)YENHCURIA,^1I^3nAAe^3-L-YENiYENI
   Ports Collection "O|w,E^3a!C

   6.2. |bthAa:YENiS:a:"`iu^1 FreeBSD YENI-a-o Motif!H

   Open Group A:AYENXCURF Motif 2.1.30 -a-o`i(c)l
   1/2X!AYENiYENH^3z^1L open-motif package |w,E!A(c)INOTOYENN ports
   |U|ae  1/2sA:P:!CNOTUAo:-a-o,eDEGT!A 1/2D-DEGN|O handbook
   CURCUR-a-o ports ^3^1,`!C

     Note: Open Motif YENu-`a|b|P 1/4ECUR]NOTO open source
     -a-oS:@.~"t^2I(c)Ip^1-oCURCUR"IYENI!C

   YENtYEN~!ACUR]NOTO|^3DEGO.~-a(c)YEN>>-a-o Motif
   |s|b!CCUR]^3\^3o-oO/-a(c)YEN>>-a-o Motif
   CUR-L-NOTOS:KP:O-a-o!A|yNOTOu'^1iCUR^1^3\YENI|b closed-source
   -a-oAo^1OCURU!C Apps2go '-L-"NCURF^3I<<K(c)y-a-o FreeBSD (YEN]NOTA
   i386 ,o alpha)-a(c)YEN>>-a-o ELF Motif 2.1.20 (R)MYENo!C

   YENO/<<e'-L-"N"a-oO/CUR-L-|PAo^1O-a-o-a(c)YEN>>!A
   !S:uo(R)iYENI-a(c)YEN>>!" CURI !S:runtime -a(c)YEN>>!"
   !C^3o"a-oO/(R)MYENo^3-L-YEN]NOTA!G

     * OSF/Motif manager, xmbind, panner, wsm.

     * Development kit with uil, mrm, xm, xmcxx, include and Imake
       files.

     * Static and dynamic ELF libraries (for use with FreeBSD 3.0 and
       above).

     * Demonstration applets.

   |]NOTDEG Apps2go CUR]|^3'-L-"N NetBSD (c)M OpenBSD
   -a-o-a(c)YEN>>!A(c)OYENH|bqAE(R)E 1/2D--SS:O<<u:(c)wNOTOn FreeBSD
   -a(c)YEN>>-a-o Motif!I YENLIYENO/<<eYENu'-L-"NYENH FTP
   -a-oCURe|!"u+-o^3oYEN-:(R)MYENo!C

   S:o|h,eDEGT

           Apps2go WWW page

   (c)I

           <sales@apps2go.com> (c)I <support@apps2go.com>

   (c)I

           phone (817) 431 8775 or +1 817 431-8775

   CUR]YENiYENHApu, Xi Graphics!AYENLI'-L-"NCURFCUR@O FreeBSD a.out
   (R)ae|!-a-o Motif 2.0 (R)MYENo!C

   |b^3o(R)MYENoCURCURYEN]NOTACURF!G

     * OSF/Motif manager, xmbind, panner, wsm.

     * Development kit with uil, mrm, xm, xmcxx, include and Imake
       files.

     * Static and dynamic libraries (for use with FreeBSD 2.2.8 and
       earlier).

     * Demonstration applets.

     * Preformatted man pages.

   |bS:A,oYENLIqAE Motif (R)E!A 1/2D-CUR@(c)wuu(c)uS:An-a-oNOTO
   FreeBSD -a-o-a(c)YEN>>!I |]NOTDEG Xi Graphics CUR]|P(R)E'-L-"NCURF
   BSDI ,o Linux -a(c)YEN>>-a-o
   Motif!CYENO/<<euo|ae-a-o-a(c)YEN>>NOTO(c)n|bYEN|P:o-oICURuCURCUR!A+-N"OYENLI.|+-N(c)O|^3-a-o
   -aF|e^3-L-(c)n"`iYENu-oD-,I!A'N^1^3YENLI(c)Ouo|ae-a-o CDE CUR@
   1/4E!C

   6.3. |bthAa:YENiS:a:"`iu^1 FreeBSD YENI-a-o CDE!H

   Xi Graphics YENH<<e|^3 1/2ae FreeBSD YENI-a-o
   CDE!ACUR-L-^1L^2{CURwDEG+-CURiuoDEGaCURF!C

   'N^3\|hCURe+-|O"YEN!AKDE ^3oO open source -a-o(R)`a+-Ao^1O>>P CDE
   NOTU.iAth|u:!C|^1YEN~!AS:AYENi-`a.|^3ssAAw"IYENI xfce!CKDE CURI
   xfce ^3-L-YENiYENN ports  3/4-:"i"O|w,E!C

   6.4. |^3"S|^3n?u!A|yNOTODEG-a(R)A:^2v-a-o X servers!H

   |^3!A Xi Graphics |^3'-L-"Nu^1 FreeBSD!](c)I"a:YENL Intel
   YENYENxCURW!^YENI-a-o X uo/u!YEN[^3t^2-L-<<~!C

   Xi Graphics (c)O'-L-"N-a-oDEG-a(R)A:-`a X Server
   |^3<<D+-`A^2^3ae-a-o^3](c)wCURe|!!A
   "AYENBCURa:'(c)CURFYENO/<<eYEN<<+-CURW.iNOTo-a-o|UCURj
   1/4tuP-a-oAAaYENU:YENd!CYEN|YENuu^1S:A Binary AE(R) *!A
   NOTOYENI-oICURu-a-oCURe|!uo|ae!AFreeBSD ,o Linux
   -a(c)YEN>>^3-L-NOTU|P!CXi Graphics |P(R)E
   CUR]'-L-"NCURF+-M-auu^1uS:DEGO<<NOT^1q,-L-YENI-a-oDEG-a(R)A:-`a X
   Server!C

   5.0 -a(c)|^3'-L-"NS:KP:O-a-oNOTU(R)e !S:demo!" -a(c)YEN>>

   Xi Graphics CUR]|^3|b 1/2ae FreeBSD YENI-a-o Motif ,o
   CDE!](c)^1CURW+-NOTYNOTY!^!C

   S:o|h-a-o,eDEGT

           Xi Graphics WWW page

   (c)I

           <sales@xig.com> (c)I <support@xig.com>

   (c)I

           phone (800) 946 7433 or +1 303 298-7478.

   6.5. |b FreeBSD CURW|^3YENo|o-a-o,e(R)AE(R)wP:U:!H

   |^3!  1/2D-NOTY FreeBSD -oo-,CURW DEGO.~^3nAAeCUR 1/2YENq
   ^3oCUR@^3!YEN-:!C

   AU|^3 1/2D-DEGN|O ports CURCUR Databases NOTUAo:-a-o|NOTP:DEG!C

   6.6. YENiYENH|b FreeBSD CURWDEGo|ae Oracle P:U:!H

   YENiYENH!ACURU+-^3oO-ooP:.|>>!(c)u|p|o|b FreeBSD CURWDEGo|ae Linux
   -a(c)-a-o Oracle!G

     * http://www.scc.nl/~marcel/howto-oracle.html

     * 
       http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd

     --------------------------------------------------------------

                      Chapter 7 CUR@-eA^3YENIu{|!

   Kang-min Liu

   7.1. P:a..S:Un|bthS:a:"`iS:Un-a-ou{|!(c)O?

   7.2. ,O<<c,>>o^3](c)w INN(Internet News) "O.i news server!H

   7.3. FreeBSD |^3CURa:'(c) Java(TM) P:U:!H

   7.4. S:UYENiYENH|bthAa:S:a:"`i libc.so.3.0?

   7.5. NOTDEG|oS:U+-o"`iCURF^3oODEGT(R)S: ?!S:Error: can't find
   libc.so.4.0!"?

   7.6. ghostscript |bS:U-a-o 386/486SX CURW|^3AIDEGYAD(c)O!I

   7.7. NOTDEGCURDEG>>o.iS:UDEGo|ae SCO/iBCS2 -a-ou{|!(R)E!AYEN||b
   !S:socksys!" ^3oO|aCUReYENXCURFDEGYAD!H (FreeBSD 3.0
   YENHCURIS:o|-a-o-a(c)YEN>>CUR~|^3|^1DEGYAD!C)

   7.8. S:U,O"IYENI"-oO-a(c)YEN>>-a-o Microsoft FrontPage!H

   7.9. NOTDEGCURDEG>>oS:UuL-ak|b 3.X-STABLE  3/4-: 3/4^1CURWP:P:S:Q
   1/2s|n^3oO port?

   7.10. "-o,IYENiYENHS:a:+-o"`i ld.so!H

   7.11. S:US:o.sCURF"t^2I`i(c)l 1/2X!A^2{|bS:Un<<c,
   1/4ECURE-AANOTYOCURw,g|w,ECURW -a-o ports ?

   7.12. NOTDEGCURDEG>>o /bin/sh^3o>>o-a-oCURp!HNOTDEGCURDEG>>o
   FreeBSD CUR-L-S:iYENI bash (c)I-aINOTO"a:YENLCURn,u+-j(R)<<-a-o
   shell!H

   7.13. NOTDEGCURDEG>>o Netscape (c)M Opera
   n-aa|nCUR[-a-o(R)EP:!CUR~-`a+-ODEGE!H

   7.1. P:a..S:Un|bthS:a:"`iS:Un-a-ou{|!(c)O?

   1/2D-NOTYNOTY ports YENO/?y S:a!C^3oAa:|^3YEN-:CURw,g port "`i
   FreeBSD -a-o^3nAAe|C-ai!C YENO/<<e|^3P:W^1L 23,000
   O^3nAAeCURw,g^3Qport "`i FreeBSD CURW!A"AYENB"CCURN ^3-L-|b
   1/4WYEN[CURCUR!C(c)OYENH|^3-aAA'N|hNOTYNOTY^3oYEN-:|C-ai!ACUR-L-uMS:ACUR]YENiYENHq
   3/4\ freebsd-announce ^3oYEN-: mailing
   list!A.||^3CURH+-N"CONOTP'A^3I.s-a-o^3nAAe|C-aiP:K|bCURW+-!C

   CURj^3!YEN-:-a-o ports A^3,O^3-L-YENiYENH|b 4.X!B5.X ,o 6.X
   -a-o"t^2ICURW"IYENI!C "C|,.i FreeBSD release
   .s-a(c)(R)E!A^3-L-.||^3CUR@YEN-: ports tree ^3Q(c)n|b^3oCUR@O
   release cd ,I+--a-o ports/ YENO/?y,I!C

   S:UICUR]CURa:'(c)CUR@-oO/YENs !S:package!"
   -a-o.S:(c)A!ADEGoYEN>>CURW 'NNOTO gzip A-L-AY!BYENiYENI"Ouo|ae-a-o
   binary AE(R) *!A|yNOTO,I+-AACURFCUR@
   "C,NOTU.i|^3YENI-a-o,eDEGT!AYENiYENHu^1|U-oO/|Uq|w,E"O"IYENI!C"IYENI-aICUR-L-YEN^2-a
   3/4 ^1DNOTYO package ,I"s^3-o|^3YEN]NOTAth"C,AE(R)
   *!A'NYENi`YENH<<U:CURe<<K|a<< 1/2AE+-N YEN||w,E/CURI|w,E!C

   S:AYENiYENHDEGo|ae sysinstall(FreeBSD 5.2
   CURS:<<e-a(c)YEN>><<hNOTO /stand/sysinstall) <<a!A |b
   post-configuration ?i^3aeCURU?i 3/4U: package ^3oO|w,E?iP:u!F(c)I
   NOTO^1iNOTYO|^3?^3 1/2`i-a-o package AE(R) *DEGo|ae pkg_add(1)
   S:aYEN|,EDEG_"O!CPackage AE(R) *^3q+-`YENH .tgz (c)I .tbz
   NOTDEGDEGAEAE|W!ACURaCURW|^3 FreeBSD CDROM -a-oCURHYENiYENH|b
   packages/All ^3oOYENO/?yCURUS:a:"`i^3oAthAE(R) *!C ^1iCUR-L-|P-a-o
   FreeBSD
   -a(c)YEN>>!ACUR]YENiYENH+-qCURU|C|`iS:}YENN-oo,oCURW"u+-o!G

   u^1 4.X-RELEASE/4-STABLE YENI-a-o

           ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/

   u^1 5.X-RELEASE/5-STABLE YENI-a-o

           ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-stable

   u^1 6.X-RELEASE/6-STABLE YENI-a-o

           ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6-stable

   u^1 7-CURRENT YENI-a-o

           ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-7-current

   (c)INOTOA-:S:A^3I-an-a-o mirror -,!C

   n-a`.N-a-oNOTO!A|]NOTDEG.s-a-o port CUR@-a 1/2|b
   1/4WYEN[CURCUR!A(c)OYENH"ACUR-L-NOTO(c)O|^3 port
   ^3-L-|^3NOTU^1iA^3-a-o package!C^3I|n(c)w(R)EAENOTdftp.FreeBSD.org
   !ANOTYNOTY|^3th"C, package YENiYENHYENI!C

   7.2. ,O<<c,>>o^3](c)w INN(Internet News) "O.i news server!H

   YENH package (c)I port CURe|!"O,E|n news/inn CURS:<<a!ADave Barr's
   INN Page NOTOO<<D+-`|n-a-o INN
   CURJ-au^3B!AS:AYENiYENH|b"-oAa:S:a:"`i INN -a-o FAQ!C

   7.3. FreeBSD |^3CURa:'(c) Java(TM) P:U:!H

   |^3DEGU!A 1/2D-NOTY http://www.FreeBSD.org/java/

   7.4. S:UYENiYENH|bthAa:S:a:"`i libc.so.3.0?

   S:AYENi-`a|bCUR@YENx 2.1.x -a-o 3/4-: 3/4^1CURW!AP:]uUu^1
   2.2/3.x/4.0 -a-o^3nAAe!C  1/2D-|A(c)^1CURW+-CUR@O^3^1,`NOTY!AYEN?
   1/2T-a-o"u+-ou^1S:A 3/4-: 3/4^1YENI-a-o port/package!C

   7.5. NOTDEG|oS:U+-o"`iCURF^3oODEGT(R)S: ?!S:Error: can't find
   libc.so.4.0!"?

   S:ACUR-L-CURpCURssS:`iCURFu^1 4.X CURI 5.X "t^2IYENI-a-o
   package!A"AYENB^1A,OuU YENh,E|bS:A-a-o 2.X (c)I 3.X
   -a-o"t^2ICURW+-!C 1/2D-CURU,u:YEN? 1/2T-a(c)YEN>>-a-o package!C

   7.6. ghostscript |bS:U-a-o 386/486SX CURW|^3AIDEGYAD(c)O!I

   S:A"S|^3-BAI^1B-oa 3/4^1!A^1iS:a!HS:AYEN^2P:.|bS:A-a-o kernel
   CURCURYEN[CURJ 1/4AE 3/4C, ^1B-oa 1/4OAA
   3/4^1!AS:AYENiYENH,ouUCURU+--a-o"BAEJDEGu!A"A|bS:oS:i^1LS:A-a-o
   kernel ^3](c)w AE<<a!A<<.s 1/2sA:P:^1LCUR@|,!C

 options GPL_MATH_EMULATE

     Note: .iS:AYEN[CURJCURWCUR@|ae-a-o|P(R)E!AS:AYEN^2P:.+-N
     MATH_EMULATE ^2 3/4DEG-L-+- 1/4!C

   7.7. NOTDEGCURDEG>>o.iS:UDEGo|ae SCO/iBCS2 -a-ou{|!(R)E!AYEN||b
   !S:socksys!" ^3oO|aCUReYENXCURFDEGYAD!H (FreeBSD 3.0
   YENHCURIS:o|-a-o-a(c)YEN>>CUR~|^3|^1DEGYAD!C)

   S:AYEN^2P:.YENy *S:i /etc/sysconfig ((c)INOTO /etc/rc.conf, 
   1/2D-AA-a rc.conf(5)) ^3oAE(R)
   *^3I<<aCUR@O^3^1,`!A+-NCURU+-(c)OA?"`i-a-oAAU: 1/4AE^3]|" YES!G

 # Set to YES if you want ibcs2 (SCO) emulation
             loaded at startup ibcs2=NO

   ^3o.||bP:} 3/4-:(R)E+-N ibcs2 ^3oCUR@O kernel  1/4O^2O,u:CURJ!C

   S:AAUn+-NS:A-a-o /compat/ibcs2/dev S:i|"CURU+-^3o 1/4E!G

 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

   S:AYENu>>Yn+-N socksys A`a|V"`i /dev/null ( 1/2D-AA-a null(4))
   YENhA:F^1L open & close -a-oDEGES:@!C|b -current ,I+--a-o ibcs2
   NOTUAo:u{|! 1/2X+-N.|^3B^2z"a:
   3/4l-a-o^3!YEN-:!A^3o-oO/S:@-akCURnYENH<<e-a-oCURe|!
   DEG(R)^2bCURO|hCURF!CDEG^2|pS:A.Qn"IYENI spx CURe+--a-o
   u{|!!A|bS:A-a-o kernel ^3](c)wAE,I+- YEN[CURWSPX_HACK!C

   7.8. S:U,O"IYENI"-oO-a(c)YEN>>-a-o Microsoft FrontPage!H

   Use the Port, Luke!I|b ports tree CURCURCURw,g|^3CUR@OYEN]S:t
   FrontPage -a-o Apache -a(c)YEN>>CURF!C

   7.9. NOTDEGCURDEG>>oS:UuL-ak|b 3.X-STABLE  3/4-: 3/4^1CURWP:P:S:Q
   1/2s|n^3oO port?

   |p-aGS:A-a-o FreeBSD -a(c)YEN>>NOTU,u -CURRENT (c)I -STABLE
   CURS:CURUNOTO<<U:YENj |-a-o,U:!A(c)I^3\S:A.|>>YnCUR@OCURE-AA ports
   -a-oCURu"a!A|b
   http://www.FreeBSD.org/ports/!C|p-aGS:AYENH+-N"a:S:o.s<<oCUR'uLYENI!A
   "-o>>oCUR@(c)wNOTONOTYCURHS:oDEGECURS:<<a^3y|" -CURRENT
   CUR~-`aYENI!A-STABLE uL-akYENI-a-o+-!-ap!C YENN(c)o ports
   CUR-o(c)O|NOTP:DEG-a-o^3nAAe|b -CURRENT (c)INOTO -STABLE
   CURW^3-L-n-`aYENI!A (c)OYENH 1/2D-
   3/4"^3tDEGeYENXAo:(c)o|^1DEGYAD-a-oAI^3o/S:i!F 1/2D-"IYENI
   send-pr(1) ^3oO<<u: YENO"ODEGeAI^3o/S:i!C

   7.10. "-o,IYENiYENHS:a:+-o"`i ld.so!H

   |^3"C, a.out (R)ae|!-a-oA^3YENIu{|!.|>>Yn a.out
   (R)ae|!-a-o"c,|!(R)w!A Netscape Navigator
   'NNOTOCUR@O"OCURl!CCUR-L-^1LYENI ELF "c,|!(R)w 1/2sDEG_"O -a-o
   FreeBSD ^1w^3]"ACUR-L-.||w,EAA-a-o a.out
   "c,|!(R)w!A(c)OYENH+-zYENi-`a.|+-o "`iAth|u:S:a:CUR-L-"`i
   /usr/libexec/ld.so -a-o(c)e<<eDEGT
   (R)S:!C|p-aG>>!+-z-a-o"t^2I|^3^3o|w,E a.out
   "c,|!(R)w-a-oYEN^2n!A^3o"C,"c,|!(R)w (compat22)
   CUR]-`aDEG-:S:QYENI sysinstall(8) "O|w,E!C(c)I-aIS:QYENI FreeBSD
   `i(c)l 1/2X"O|w,E!G

 # cd /usr/src/lib/compat/compat22# make install clean

   |p-aGS:AS:AE+-ae"C|, make world (R)E.||UDEGES:o.s compat22
   "c,|!(R)w!A"-o>>o *S:i /etc/make.conf!A YEN[CURJ
   COMPAT22=YES!C^3o"C,NOTU(R)e(c)oYENj|N-a(c)YEN>>-a-o"c,|!(R)w
   CURw,g"SCURDEG>>o|bS:o.sCURF!A(c)OYENHCUR@-e>>!"ONOTOCUR-L->>Yn^3o
   1/4E-a-o!C

   |P(R)ECUR] 1/2D-+-zNOTYCUR@CURU 3.1-RELEASE (c)M 3.2-RELEASE
   -a-oDEGE>>~-ai(ERRATA)!C

   7.11. S:US:o.sCURF"t^2I`i(c)l 1/2X!A^2{|bS:Un<<c,
   1/4ECURE-AANOTYOCURw,g|w,ECURW -a-o ports ?

   FreeBSD YEN>>""A"S|^3|UDEGECURE-AA ports
   -a-oCURu"a!A|y|^3CUR@"C,YENiYENHAAyCURE-AA
   A^2CURAECUR@"C,-a-oCURpu{|!!CS:ACUR]YENiYENH|UCURv,ECURWABYEN~-a-oCURu"a"O^3B^2z!C

   pkg_version(1)
   <<u:YENOYENiYENH|UDEGE^2-L-YENIYENI"O^1F"`i|UDEGECURE-AA"`i ports
   tree ^3I.s-a(c)YEN>>-a-o script!C

 # pkg_version -c > /tmp/myscript

   CUR@(c)wn|bCURaDEGE *S:iCUR@CURU^2-L-YENIYENX"O-a-o script!C
   YENO/<<e-a-o pkg_version(1) |b script ^3I<<e+-YEN[CURJ exit(1) +-j
   -c-S:AYENh *S:iYEN|!C

   S:AA^3+-NDEGo|ae script
   (c)O^2-L-YENI-a-o?eYENXDEGO?yCURU"O!A|]NOTDEG,I+-.||^3DEGO,u:NOTY"C,
   (c)|YEN 1/4CURE-AA|yCURw,gS:o.s-a-o
   ports!CCUR-L-^1LS:ACUR-L-CUR@(c)wnYENhCURE-AAYEN|I!C^3q+-`NOTO|]NOTDEG
   |^3NOTYO|@YENI-a-o"c,|!(R)wCURw,gS:iAAU:-a(c)YEN>>,^1CURF!ACUR~nYENh<<
   1/2sCUR@|,"-o"C,"IYENI"`i,O"c, |!(R)w-a-o ports!C

   |p-aGS:A-a-ouw-oD--aAAP:!<<U:DEG-:!A"-o>>oYENiYENHYENI portupgrade
   ^3oOCURu"a"ODEGuYENth|UDEGE^3B,I!Cportupgrade ,I+-CUR]|^3
   CUR@"C,CURpu{|!"OA^2CURAE package CURE-AA!AYEN||b
   sysutils/portupgrade!C ^3oOCURu"aNOTOYENI Ruby ^3oO>>y"YEN
   1/4g-a-o!A(c)OYENH"ACUR-L- 3/4A|XYEN[CURJ"`i FreeBSD -a-o`i (c)l
   1/2XCURCUR!ACUR-L-^1L"ACUR-L-.||]|^1AAyNOTY"C,CURHCUR-L-YENIYEN|!C

   |p-aGS:A-a-o"t^2ICUR@-a 1/2^3-L-^3B(c)oP:}
   3/4-:-aNOT-oA!AYENiS:QYENI periodic(8) "t^2I!A
   "CONOTP'A^2-L-YENICUR@+-i>>YnCURE-AA-a-o^2M^3ae!CYENun|b
   /etc/periodic.conf YEN[CURJ weekly_status_pkg_enable="YES"
   'NYENiYENHCURF!C

   7.12. NOTDEGCURDEG>>o /bin/sh^3o>>o-a-oCURp!HNOTDEGCURDEG>>o
   FreeBSD CUR-L-S:iYENI bash (c)I-aINOTO"a:YENLCURn,u+-j(R)<<-a-o
   shell!H

   |]NOTDEG POSIX >>!!A,On|^3^3o>>o 1/4E-a-oCUR@O shell |bCUR~|ae!C

   CURn,uAc-o 3/4-a-ou-a(R) *!G^3\|hCURH>>Yn
   1/4gYENiYENH,o<<U:|hYENYENx-a-o shell script !C
   ^3oCUR]NOTONOTDEG|o POSIX +-N shell
   YENHCURICURu"a(c)R-oU^3-L-(c)w,q-a-o<<D+-`,O^2O-a-o 1/2tNOTG!C
   CURj^3!YEN-:-a-o script ^3-L- 3/4AYENI(c)o Bourne
   shell!ACURS|]NOTDEG|^3'XO<<n-a-o 
   1/4gu{|!(c)OYENI"`i-a-ou{|!(c)I-aI"c,|! (make(1) , system(3),
   popen(3), AU|^3|b Perl (c)I-aI Tcl
   ,I+-(c)IYENs"t^2Iu{|!-a-o|aCURe) ^3-L-<<u:(c)wYENI Bourne shell
   !C"-o>>o|]NOTDEG Bourne Shell |p|^1-a-o 1/4s-ax+-`YENI!A
   "-o>>oYEN|-a-oDEGo|ae(R)A:^2v<<K<<U:<<n!AS:O:^3tNOTOYEN|"M(c)w(c)E-a-onAICURS:CUR@!AAUnCUR-L-|uCURO|h
   DEGO 3/4D-AAe!C

   YENO/<<e-a-o /bin/sh CURwNOTOS:UI^1ACURssAw|aaCURS:S:@!AYEN|CURw
   ,g-oEP:q|a^2AA|X
   1/4D-.C,^3W(c)w!CNOTDEGCURFAAyYEN|<<D+-`CURp!AS:UI(R)^3+-
   1/4CURFCUR@"C,"a:YENL shell
   |^3-a-oCURe<<KYEN\-`a!C^3oCUR]NOTONOTDEGCURDEG>>o ports
   ,I+-AU|^3<<U:|h+-j(R)<<-a-o shell !A^1^3NOTO bash, scsh, tcsh
   YENHCURI zsh !C (S:AYENiYENH|UCURvCURn,uCUR@CURU^3o"C, shell
   DEGo|ae (R)E(c)O|u-a-oDEGO 3/4D-AAeCURjCURp!AYENhNOTYNOTY ps -u
   |CYENX"O-a-o !S:VSZ!" (c)M !S:RSS!" ^3o"aOA:ae|`i'N-a
   3/4^1DCURF!C)

   7.13. NOTDEGCURDEG>>o Netscape (c)M Opera
   n-aa|nCUR[-a-o(R)EP:!CUR~-`a+-ODEGE!H

   ^3q+-`NOTO|]NOTDEGS:A-a-o DNS "S|^3^3](c)w|n!C Netscape ,o Opera
   |b+-ODEGE-a-o(R)EO ^3-L-.|YENhAENOTdCUR@CURU DNS!C-a 1/2"`i DNS
   |^3|^A^3!A(c)I-aINOTOA_(c)w-oo,oYENO/<<eNOTOA_ 1/2uCURS:<<a!A
   YEN|ICUR~.|AAaYENU:ue+-YENX"O!C

     --------------------------------------------------------------

                        Chapter 8 kernel ^3](c)w

   Kang-min Liu

   8.1. S:U.Q|Uq kernel!A^3o.|<<U:S:xAo/P:U:!H

   8.2. S:U-a-o(R)O:CURss|]NOTDEG _hw_float?oYEN-c-|O
   1/2sA:P:YEN-c-+-N!C ,O<<c,>>o *YEN?(c)O!H

   8.3. NOTDEGCURDEG>>o^3yYENX"O-a-o kernel ^3o>>oCURj (10MB
   YENHCURW) !H

   8.4. NOTDEG|oYENX^2{CURF multi-port serial code -a-oCURCURA_
   1/2A:NOTd-!H

   8.5. NOTDEGCURDEG>>oS:UCUR@O kernel ^3-L-
   1/2sCUR-L-DEG_"O!HNOTAE|U: GENERIC CUR]CUR-L-|ae!H

   8.1. S:U.Q|Uq kernel!A^3o.|<<U:S:xAo/P:U:!H

   CUR-L-.|!I 1/2D-NOTd 3/4\ "IYENICURaYENUCURCUR-a-o kernel
   ^3](c)wCUR@,`!C

     Note:
     S:U.|<<O/A:^3S:A|bS:AAAy(R)O:CURss-`aYEN?+-`CURuS:@<<a!ADEGuCUR@O
     kernel.YYMMDD CURe'AS:I|!-a-o^3AEYEN-:!A|P(R)ECUR]^3AEYEN-:
     /module^3oOYENO/?y|U: /modules.YYMMDD!C^3o
     1/4ECURU|,|p-aGS:A<<U:CUR-L-(c)--a-o-a+-
     AaCURF^3](c)w!A|U:CURO:YENiYENHCUR-L->>Yn"IYENI^3I`i(c)l-a-o
     kernel.GENERIC!C|pS:AYEN?+-qCUR@O GENERIC kernel
     ,I+-CUR-L-CURa:'(c)-a-o+-+-"i
     3/4^1,I+-ODEGE(R)E!A^3o'NAAa+-o-SS:O<<n!C

   8.2. S:U-a-o(R)O:CURss|]NOTDEG _hw_float?oYEN-c-|O
   1/2sA:P:YEN-c-+-N!C ,O<<c,>>o *YEN?(c)O!H

   AAyS:U^2qNOTYNOTY!AS:AS:a npx0 (,O"-L- npx(4)) +-qS:A-a-o kernel
   ^3](c)wAE^2 3/4DEG-L-CURF!A|]NOTDEGS:A"S|^3 1/4AE 3/4C,^1B-oa
   3/4^1!A ^1iP:U:!H?uCURF!I:-) ^3oO npx0NOTO
   YEN^2P:.n|^3-a-o!C'N-oaS:A"S|^3 1/4AE 3/4C,^1B-oa 3/4^1!AS:AAUNOTO
   YEN^2P:. CURTHCURJ npx0 ,E,m!C

   8.3. NOTDEGCURDEG>>o^3yYENX"O-a-o kernel ^3o>>oCURj (10MB
   YENHCURW) !H

   ^3o<<U:|^3YENi-`aNOTO|]NOTDEG!AS:AS:a kernel  1/2s|" DEG>>?u
   1/4O|! CURF!CDEG>>?u 1/4O|!CURS:CURU-a-o kernel
   ,I+-.||suUDEG>>?uYENI-a-o^3\|h^2AA,^1!A|]|^1.|CURj'T  1/4WYEN[
   kernel -a-oCURjCURp!C|p-aG>>!S:A-a-o FreeBSD NOTO 3.0
   YENH<<a-a-o-a(c)YEN>>!A^3o^1i(c)o (R)A:-`a"O>>!
   1/4vAAT"ACUR-L-CURj!A'XYENGNOTO"S|^3!C|O|b"t^2I.||]NOTY"C,`i|]
   panic (R)E!A |^3ODEG>>?u 1/4O|!-a-o kernel |bCUR](R)
   1/4|^3YENI-a-o!C

   CUR-L-^1L(c)O!A|p-aGS:A-a-o-oI-oD--aAAP:!<<U:CURp!A(c)I-aIS:A'NNOTOCUR-L-.QYENIDEG>>?u
   1/4O|!-a-o kernel -a-o,U:!A 1/2D- 1/2T>>{YENHCURU"AE+-!!G

     * kernel ^3](c)wAE,I+-"S|^3^3oCUR@|ae!G

 makeoptions DEBUGS=-g

     * DEGo|ae config(8) (R)E"S|^3YEN[CURW -g ^3oO?iP:u!C

   YENHCURW"aYENo"AE+-!^3-L-.|AAyS:A 1/2sYENXCUR@ODEG>>?u 1/4O|!-a-o
   kernel!C|yYENunA *S:KCURS:!A 'NYENiYENH 1/2sYENXCUR@OYEN?+-`-a-o
   kernel!A|OS:ACUR].|-a`.N"`i!Akernel (c)uAAa-a-oAAU:CURpCURF!F
   CURj^3!YEN-:-a-o kernel ^3-L-(R)tCUR-L-|h|b 1.5MB "`i 2MB
   CURS:P:!!C

   8.4. NOTDEG|oYENX^2{CURF multi-port serial code -a-oCURCURA_
   1/2A:NOTd-!H

   .iS:U 1/2sA:P:CUR@O multi-port serial code
   -a-o(R)O:CURss(R)E!AYEN|S:iP:DS:UYENu|^3
   ^2A:CUR@O^3QDEG>>'u"`i!A"a:YENL-a-o<<h|]CURCURA_
   1/2A:NOTd-|O,o^1LCURF!AS:U,O<<c,>>o *YEN?YEN|!H

   ^3oODEGYADNOTO|]NOTDEG FreeBSD "IYENICUR-o<<O/u{|! 1/2XA
   *S:K|]NOTDEGuwAAe(c)I^3nAAe 1/2A:NOTd-  3/4EP kernel
   ^1L(c)o-aICURj(c)IuLYENI!Cn
   *YEN?^3o-oO/+-!S:I-a-oCURe-akNOTODEG-L-CURFCUR@O port
   YEN~S:a"a:YENL(c)O|^3-a-o IRQ ^3](c)w^3-L-DEGu<<O-d!C^3o,I|^3CUR@O
   1/2d"O!G

 #
 # 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

   8.5. NOTDEGCURDEG>>oS:UCUR@O kernel ^3-L-
   1/2sCUR-L-DEG_"O!HNOTAE|U: GENERIC CUR]CUR-L-|ae!H

   ^3o|^3<<U:|h-oO/YENi-`a-a-o`i|]!G

     * S:A"S|^3YENI.s-a-o make buildkernel >>P make installkernel
       ^3o"aOCURe-ak"O 1/2s!A|OYEN?|n S:A-a-o"t^2I`i(c)l
       1/2X-a-o-a(c)YEN>>(c)MYEN?|bDEGo|ae-a-o"t^2I(R)O:CURss-a(c)YEN>>CUR-L-CUR@
       1/4E (^1^3NOTO!A |bP:] 4.0-RELEASE -a-o"t^2ICURW^1A,OuU 1/2s
       4.3-RELEASE)!C|p-aG>>!S:AnCURE -AA"t^2I-a-o,U:!A
       1/2D-DEGEYEN^2YENhNOTYNOTY /usr/src/UPDATING ^3oOAE(R)
       *!A-SS:O-a`.N^3I<<a+--a-o !S:COMMON ITEMS!" ^3oOCURp,`!C

     * S:ACURw,gYENICURW make buildkernel YENHCURI make installkernel
       CURF!A|yNOTO|b make buildworld
       (R)EYEN-c-+-NCURF!CYENi+-CUR-a-oNOTO!A make buildkernel
       n|"YEN\!A>>Yn"I?`a make buildworld
       <<a^3yYENX"O-a-oCUR@"C,AE(R) *!C

     * 'N-oaNOTOS:A|b 1/2s FreeBSD-STABLE!A
       AUNOTO|^3YENi-`aS:AS:`i"`iCURFYEN?|b
       *S:iCURCUR!A(c)IuU|]NOTDEGNOTY"C, 1/2tNOTG|O(R)UYEN>>AU"SS:i|n
       -a-o`i(c)l 1/2X!FAo:uM>>! FreeBSD-STABLE
       CURj^3!YEN-:-a-o(R)EO^3-L-NOTOYENiYENH 1/2s-a-o!A|yYENu|^3
       RELEASE CUR~NOTO<<OAOYENiYENH 1/2s-a-o!C,I
       "`i^3oODEGYAD(R)E!A|A|,S:o.s`i(c)l
       1/2X"AYENB|A,O,ONOTY!CCUR]|^3YENi-`aNOTO(c)n`i(c)l 1/2X-a-o
       |o/-aA 3/4^1YENX^2{NOTY"C,DEGYAD!A(c)OYENHS:o.s`i(c)l
       1/2X(R)ECUR],O,O+-qCUR-L-|P|o/-aA 3/4^1"OS:o.sNOTY NOTY!C

     --------------------------------------------------------------

              Chapter 9 uw-oD-!BAE(R) *"t^2I!BBoot Loader

   9.1. |p|o|b FreeBSD CUR-oS:a.suw-oD-+- 3/4CURWYENhYENI(c)O!H

   9.2. S:Un<<c,>>oS:aS:U-a-o"t^2I.h"`i.suw-oD-CURW+-YENh!H

   9.3. Will a !S:dangerously dedicated!" disk endanger my health?

   9.4. Which partitions can safely use Soft Updates? I have heard
   that Soft Updates on / can cause problems.

   9.5. What is inappropriate about my ccd?

   9.6. Why can I not edit the disklabel on my ccd?

   9.7. Can I mount other foreign filesystems under FreeBSD?

   9.8. How do I mount a secondary DOS partition?

   9.9. FreeBSD |^3AE(R) *YEN[+-K"t^2IP:U:!H

   9.10. How can I use the Windows NT loader to boot FreeBSD?

   9.11. How do I boot FreeBSD and Linux from LILO?

   9.12. How do I boot FreeBSD and Linux using BootEasy?

   9.13. How do I change the boot prompt from ??? to something more
   meaningful?

   9.14. I have a new removable drive, how do I use it?

   9.15. Why do I get !S:Incorrect super block!" when mounting a
   CDROM?

   9.16. Why do I get !S:Device not configured!" when mounting a
   CDROM?

   9.17. Why do all non-English characters in filenames show up as
   !S:?!" on my CDs when mounted in FreeBSD?

   9.18. I burned a CD under FreeBSD and now I can not read it under
   any other operating system. Why?

   9.19. How can I create an image of a data CD?

   9.20. Why can I not mount an audio CD?

   9.21. How do I mount a multi-session CD?

   9.22. How do I let ordinary users mount floppies, CDROMs and other
   removable media?

   9.23. The du and df commands show different amounts of disk space
   available. What is going on?

   9.24. How can I add more swap space?

   9.25. Why does FreeBSD see my disk as smaller than the
   manufacturer says it is?

   9.26. How is it possible for a partition to be more than 100%
   full?

   9.1. |p|o|b FreeBSD CUR-oS:a.suw-oD-+- 3/4CURWYENhYENI(c)O!H

   1/2D-DEGN 3/4\ -oI-oD-(R)ae|!CURAE+-D- 3/4C,!C

   9.2. S:Un<<c,>>oS:aS:U-a-o"t^2I.h"`i.suw-oD-CURW+-YENh!H

   ^2z.Q-a-oCURe|!NOTOYENy|b.suw-oD-CURW<<,E|nS:@.~"t^2I!AuM<<aS:a"IYENI-aINOTUAo:u{|!!B,e(R)AE.h^1LYENh'N|n!C
   This is highly recommended if you have been tracking -STABLE for
   more than one release, or have updated a release instead of
   installing a new one. You can install booteasy on both disks with
   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.

   Should you decide not to do a fresh install, you need to partition
   and label the new disk with either sysinstall(FreeBSD 5.2
   CURS:<<e-a(c)YEN>><<hNOTO /stand/sysinstall), or fdisk(8) and
   disklabel(8). You should also install booteasy on both disks with
   boot0cfg(8), so that you can dual boot to the old or new system
   after the copying is done. See the formatting-media article for
   details on this process.

   Now you have the new disk set up, and are ready to move the data.
   Unfortunately, you cannot just blindly copy the data. Things like
   device files (in /dev), flags, and links tend to screw that up.
   You need to use tools that understand these things, which means
   dump(8). Although it is suggested that you move the data in single
   user mode, it is not required.

   You should never use anything but dump(8) and restore(8) to move
   the root filesystem. The tar(1) command may work - then again, it
   may not. You should also use dump(8) and 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:

    1. newfs the new partition.

    2. mount it on a temporary mount point.

    3. cd to that directory.

    4. dump the old partition, piping output to the new one.

   For example, if you are going to move root to /dev/ad1s1a, with
   /mnt as the temporary mount point, it is:

 # newfs /dev/ad1s1a
 # mount /dev/ad1s1a /mnt
 # cd /mnt
 # dump 0af - / | restore xf -

   Rearranging your partitions with dump takes a bit more work. To
   merge a partition like /var into its parent, create the new
   partition large enough for both, move the parent partition as
   described above, then move the child partition into the empty
   directory that the first move created:

 # newfs /dev/ad1s1a
 # mount /dev/ad1s1a /mnt
 # cd /mnt
 # dump 0af - / | restore xf -
 # cd var
 # dump 0af - /var | restore xf -

   To split a directory from its parent, say putting /var on its own
   partition when it was not before, create both partitions, then
   mount the child partition on the appropriate directory in the
   temporary mount point, then move the old single partition:

 # newfs /dev/ad1s1a
 # newfs /dev/ad1s1d
 # mount /dev/ad1s1a /mnt
 # mkdir /mnt/var
 # mount /dev/ad1s1d /mnt/var
 # cd /mnt
 # dump 0af - / | restore xf -

   You might prefer cpio(1), pax(1), tar(1) to dump(8) for user data.
   At the time of this writing, these are known to lose file flag
   information, so use them with caution.

   9.3. Will a !S:dangerously dedicated!" disk endanger my health?

   The installation procedure allows you to chose two different
   methods in partitioning your hard disk(s). The default way makes
   it compatible with other operating systems on the same machine, by
   using fdisk table entries (called !S:slices!" 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.

   So why it is called !S:dangerous!"? A disk in this mode does not
   contain what normal PC utilities would consider a valid fdisk
   table. Depending on how well they have been designed, they might
   complain at you once they are getting in contact with such a disk,
   or even worse, they might damage the BSD bootstrap without even
   asking or notifying you. In addition, the !S:dangerously
   dedicated!" disk's layout is known to confuse many BIOSes,
   including those from AWARD (e.g. as found in HP Netserver and
   Micronics systems as well as many others) and Symbios/NCR (for the
   popular 53C8xx range of SCSI controllers). This is not a complete
   list, there are more. Symptoms of this confusion include the
   !S:read error!" message printed by the FreeBSD bootstrap when it
   cannot find itself, as well as system lockups when booting.

   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.
   !S:Dangerously dedicated!" mode's origins lie in a desire to avoid
   one of the most common problems plaguing new FreeBSD installers -
   matching the BIOS !S:geometry!" numbers for a disk to the disk
   itself.

   !S:Geometry!" is an outdated concept, but one still at the heart
   of the PC's BIOS and its interaction with disks. When the FreeBSD
   installer creates slices, it has to record the location of these
   slices on the disk in a fashion that corresponds with the way the
   BIOS expects to find them. If it gets it wrong, you will not be
   able to boot.

   !S:Dangerously dedicated!" mode tries to work around this by
   making the problem simpler. In some cases, it gets it right. But
   it is meant to be used as a last-ditch alternative - there are
   better ways to solve the problem 99 times out of 100.

   So, how do you avoid the need for !S:DD!" mode when you are
   installing? Start by making a note of the geometry that your BIOS
   claims to be using for your disks. You can arrange to have the
   kernel print this as it boots by specifying -v at the boot:
   prompt, or using boot -v in the loader. Just before the installer
   starts, the kernel will print a list of BIOS geometries. Do not
   panic - wait for the installer to start and then use scrollback to
   read the numbers. Typically the BIOS disk units will be in the
   same order that FreeBSD lists your disks, first IDE, then SCSI.

   When you are slicing up your disk, check that the disk geometry
   displayed in the FDISK screen is correct (ie. it matches the BIOS
   numbers); if it is wrong, use the g key to fix it. You may have to
   do this if there is absolutely nothing on the disk, or if the disk
   has been moved from another system. Note that this is only an
   issue with the disk that you are going to boot from; FreeBSD will
   sort itself out just fine with any other disks you may have.

   Once you have got the BIOS and FreeBSD agreeing about the geometry
   of the disk, your problems are almost guaranteed to be over, and
   with no need for !S:DD!" mode at all. If, however, you are still
   greeted with the dreaded !S:read error!" message when you try to
   boot, it is time to cross your fingers and go for it - there is
   nothing left to lose.

   To return a !S:dangerously dedicated!" 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

 # dd if=/dev/zero of=/dev/rda0 count=15

   Alternatively, the undocumented DOS !S:feature!"

 C:\> fdisk /mbr

   will to install a new master boot record as well, thus clobbering
   the BSD bootstrap.

   9.4. Which partitions can safely use Soft Updates? I have heard
   that Soft Updates on / can cause problems.

   Short answer: you can usually use Soft Updates safely on all
   partitions.

   Long answer: There used to be some concern over using Soft Updates
   on the root partition. Soft Updates has two characteristics that
   caused this. First, a Soft Updates partition has a small chance of
   losing data during a system crash. (The partition will not be
   corrupted; the data will simply be lost.) Also, Soft Updates can
   cause temporary space shortages.

   When using Soft Updates, the kernel can take up to thirty seconds
   to actually write changes to the physical disk. If you delete a
   large file, the file still resides on disk until the kernel
   actually performs the deletion. This can cause a very simple race
   condition. Suppose you delete one large file and immediately
   create another large file. The first large file is not yet
   actually removed from the physical disk, so the disk might not
   have enough room for the second large file. You get an error that
   the partition does not have enough space, although you know
   perfectly well that you just released a large chunk of space! When
   you try again mere seconds later, the file creation works as you
   expect. This has left more than one user scratching his head and
   doubting his sanity, the FreeBSD filesystem, or both.

   If a system should crash after the kernel accepts a chunk of data
   for writing to disk, but before that data is actually written out,
   data could be lost or corrupted. This risk is extremely small, but
   generally manageable. Use of IDE write caching greatly increases
   this risk; it is strongly recommended that you disable IDE write
   caching when using Soft Updates.

   These issues affect all partitions using Soft Updates. So, what
   does this mean for the root partition?

   Vital information on the root partition changes very rarely. Files
   such as /kernel and the contents of /etc only change during system
   maintenance, or when users change their passwords. If the system
   crashed during the thirty-second window after such a change is
   made, it is possible that data could be lost. This risk is
   negligible for most applications, but you should be aware that it
   exists. If your system cannot tolerate this much risk, do not use
   Soft Updates on the root filesystem!

   / is traditionally one of the smallest partitions. By default,
   FreeBSD puts the /tmp directory on /. If you have a busy /tmp, you
   might see intermittent space problems. Symlinking /tmp to /var/tmp
   will solve this problem.

   9.5. What is inappropriate about my ccd?

   The symptom of this is:

 # ccdconfig -C
 ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format

   This usually happens when you are trying to concatenate the c
   partitions, which default to type unused. 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 4.2BSD.

   9.6. Why can I not edit the disklabel on my ccd?

   The symptom of this is:

 # disklabel ccd0
 (it prints something sensible here, so let us 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

   This is because the disklabel returned by ccd is actually a
   !S:fake!" one that is not really on the disk. You can solve this
   problem by writing it back explicitly, as in:

 # disklabel ccd0 > /tmp/disklabel.tmp
 # disklabel -Rr ccd0 /tmp/disklabel.tmp
 # disklabel -e ccd0
 (this will work now)

   9.7. Can I mount other foreign filesystems under FreeBSD?

   FreeBSD supports a variety of other filesystems.

   Digital UNIX

           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.

   Linux

           FreeBSD supports ext2fs partitions. See mount_ext2fs(8)
           for more information.

   Windows NT(R)

           FreeBSD includes a read-only NTFS driver. For more
           information, see mount_ntfs(8).

   FAT

           FreeBSD includes a read-write FAT driver. For more
           information, see mount_msdosfs(8).

   FreeBSD also supports network filesystems such as NFS (see
   mount_nfs(8)), NetWare (see mount_nwfs(8)), and Microsoft-style
   SMB filesystems (see mount_smbfs(8)).

   9.8. How do I mount a secondary DOS partition?

   The secondary DOS partitions are found after ALL the primary
   partitions. For example, if you have an !S:E!" partition as the
   second DOS partition on the second SCSI drive, you need to create
   the special files for !S:slice 5!" in /dev, then mount /dev/da1s5:

 # cd /dev
 # sh MAKEDEV da1s5
 # mount -t msdos /dev/da1s5 /dos/e

     Note: You can omit this step if you are running FreeBSD
     5.0-RELEASE or newer with devfs(5) enabled.

   9.9. FreeBSD |^3AE(R) *YEN[+-K"t^2IP:U:!H

   |^3DEGU!I FreeBSD 5.0 DEG_CUR-o<<O/ gbde(8)!A|O FreeBSD 6.0
   CURSYEN[CURW geli(8)!C |O,u|'A-a-o-a(c)YEN>>!A 1/2D-|hS:QYENI
   security/cfs port!AAAAA!C

   9.10. How can I use the Windows NT loader to boot FreeBSD?

   The general idea is that you copy the first sector of your native
   root FreeBSD partition into a file in the DOS/Windows NT
   partition. Assuming you name that file something like
   c:\bootsect.bsd (inspired by c:\bootsect.dos), you can then edit
   the c:\boot.ini file to come up with something like this:

 [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"

   If FreeBSD is installed on the same disk as the Windows NT boot
   partition simply copy /boot/boot1 to C:\BOOTSECT.BSD. However, if
   FreeBSD is installed on a different disk /boot/boot1 will not
   work, /boot/boot0 is needed.

   /boot/boot0 needs to be installed using sysinstall(FreeBSD 5.2
   CURS:<<e-a(c)YEN>><<hNOTO /stand/sysinstall) by selecting the
   FreeBSD boot manager on the screen which asks if you wish to use a
   boot manager. This is because /boot/boot0 has the partition table
   area filled with NULL characters but sysinstall copies the
   partition table before copying /boot/boot0 to the MBR.

     Warning: Do not simply copy /boot/boot0 instead of /boot/boot1;
     you will overwrite your partition table and render your computer
     un-bootable!

   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 /boot/boot0 to C:\BOOTSECT.BSD then it writes
   an empty partition table, with the active flag set on one entry,
   to the MBR.

   9.11. How do I boot FreeBSD and Linux from LILO?

   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:

   Boot Linux, and add the following lines to /etc/lilo.conf:

 other=/dev/hda2
         table=/dev/hda
         label=FreeBSD

   (the above assumes that your FreeBSD slice is known to Linux as
   /dev/hda2; tailor to suit your setup). Then, run lilo as root and
   you should be done.

   If FreeBSD resides on another disk, you need to add
   loader=/boot/chain.b to the LILO entry. For example:

 other=/dev/dab4
         table=/dev/dab
         loader=/boot/chain.b
         label=FreeBSD

   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:

 Boot: 1:da(0,a)/kernel

   You can configure boot(8) to automatically do this for you at boot
   time.

   The Linux+FreeBSD mini-HOWTO is a good reference for FreeBSD and
   Linux interoperability issues.

   9.12. How do I boot FreeBSD and Linux using BootEasy?

   Install LILO at the start of your Linux boot partition instead of
   in the Master Boot Record. You can then boot LILO from BootEasy.

   If you are running Windows 95 and Linux this is recommended
   anyway, to make it simpler to get Linux booting again if you
   should need to reinstall Windows 95 (which is a Jealous Operating
   System, and will bear no other Operating Systems in the Master
   Boot Record).

   9.13. How do I change the boot prompt from ??? to something more
   meaningful?

   You can not do that with the standard boot manager without
   rewriting it. There are a number of other boot managers in the
   sysutils ports category that provide this functionality.

   9.14. I have a new removable drive, how do I use it?

   Whether it is 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 is installed and recognized by the system, and you have
   your cartridge/floppy/whatever slotted in, things are pretty much
   the same for all devices.

   (this section is based on Mark Mayo's ZIP FAQ)

   If it is a ZIP drive or a floppy, you have already got a DOS
   filesystem on it, you can use a command like this:

 # mount -t msdos /dev/fd0c /floppy

   if it is a floppy, or this:

 # mount -t msdos /dev/da2s4 /zip

   for a ZIP disk with the factory configuration.

   For other disks, see how they are laid out using fdisk(8) or
   sysinstall(8).

   The rest of the examples will be for a ZIP drive on da2, the third
   SCSI disk.

   Unless it is a floppy, or a removable you plan on sharing with
   other people, it is probably a better idea to stick a BSD
   filesystem on it. You will get long filename support, at least a
   2X improvement in performance, and a lot more stability. First,
   you need to redo the DOS-level partitions/filesystems. You can
   either use fdisk(8) or sysinstall(FreeBSD 5.2
   CURS:<<e-a(c)YEN>><<hNOTO /stand/sysinstall), or for a small drive
   that you do not want to bother with multiple operating system
   support on, just blow away the whole FAT partition table (slices)
   and just use the BSD partitioning:

 # dd if=/dev/zero of=/dev/rda2 count=2
 # disklabel -Brw da2 auto

   You can use disklabel or sysinstall to create multiple BSD
   partitions. You will certainly want to do this if you are adding
   swap space on a fixed disk, but it is probably irrelevant on a
   removable drive like a ZIP.

   Finally, create a new filesystem, this one is on our ZIP drive
   using the whole disk:

 # newfs /dev/rda2c

   and mount it:

 # mount /dev/da2c /zip

   and it is probably a good idea to add a line like this to
   /etc/fstab (see fstab(5)) so you can just type mount /zip in the
   future:

 /dev/da2c /zip ffs rw,noauto 0 0

   9.15. Why do I get !S:Incorrect super block!" when mounting a
   CDROM?

   You have to tell mount(8) the type of the device that you want to
   mount. This is described in the Handbook section on optical media,
   specifically the section Using Data CDs.

   9.16. Why do I get !S:Device not configured!" when mounting a
   CDROM?

   This generally means that there is no CDROM in the CDROM drive, or
   the drive is not visible on the bus. Please see the Using Data CDs
   section of the Handbook for a detailed discussion of this issue.

   9.17. Why do all non-English characters in filenames show up as
   !S:?!" on my CDs when mounted in FreeBSD?

   Your CDROM probably uses the !S:Joliet!" extension for storing
   information about files and directories. This is discussed in the
   Handbook chapter on creating and using CDROMs, specifically the
   section on Using Data CDROMs.

   9.18. I burned a CD under FreeBSD and now I can not read it under
   any other operating system. Why?

   You most likely burned a raw file to your CD, rather than creating
   an ISO 9660 filesystem. Take a look at the Handbook chapter on
   creating CDROMs, particularly the section on burning raw data CDs.

   9.19. How can I create an image of a data CD?

   This is discussed in the Handbook section on duplicating data CDs.
   For more on working with CDROMs, see the Creating CDs Section in
   the Storage chapter in the Handbook.

   9.20. Why can I not mount an audio CD?

   If you try to mount an audio CD, you will get an error like
   !S:cd9660: /dev/acd0c: Invalid argument!". This is because mount
   only works on filesystems. Audio CDs do not have filesystems; they
   just have data. You need a program that reads audio CDs, such as
   the audio/xmcd port.

   9.21. How do I mount a multi-session CD?

   By default, mount(8) will attempt to mount the last data track
   (session) of a CD. If you would like to load an earlier session,
   you must use the -s command line argument. Please see
   mount_cd9660(8) for specific examples.

   9.22. How do I let ordinary users mount floppies, CDROMs and other
   removable media?

   Ordinary users can be permitted to mount devices. Here is how:

    1. As root set the sysctl variable vfs.usermount to 1.

 # sysctl -w vfs.usermount=1

    2. As root assign the appropriate permissions to the block device
       associated with the removable media.

       For example, to allow users to mount the first floppy drive,
       use:

 # chmod 666 /dev/fd0

       To allow users in the group operator to mount the CDROM drive,
       use:

 # chgrp operator /dev/acd0c
 # chmod 640 /dev/acd0c

    3. If you are running FreeBSD 5.X or later, you will need to
       alter /etc/devfs.conf to make these changes permanent across
       reboots.

       As root, add the necessary lines to /etc/devfs.conf. For
       example, to allow users to mount the first floppy drive add:

 # Allow all users to mount the floppy disk.
 own       /dev/fd0        root:operator
 perm      /dev/fd0        0666

       To allow users in the group operator to mount the CD-ROM drive
       add:

 # Allow members of the group operator to mount CD-ROMs.
 own       /dev/acd0       root:operator
 perm      /dev/acd0       0660

    4. Finally, add the line vfs.usermount=1 to the file
       /etc/sysctl.conf so that it is reset at system boot time.

   All users can now mount the floppy /dev/fd0 onto a directory that
   they own:

 % mkdir ~/my-mount-point
 % mount -t msdos /dev/fd0 ~/my-mount-point

   Users in group operator can now mount the CDROM /dev/acd0c onto a
   directory that they own:

 % mkdir ~/my-mount-point
 % mount -t cd9660 /dev/acd0c ~/my-mount-point

   Unmounting the device is simple:

 % umount ~/my-mount-point

   Enabling vfs.usermount, however, has negative security
   implications. A better way to access MS-DOS formatted media is to
   use the emulators/mtools package in the ports collection.

     Note: The device name used in the previous examples must be
     changed according to your configuration.

   9.23. The du and df commands show different amounts of disk space
   available. What is going on?

   You need to understand what du and df really do. du goes through
   the directory tree, measures how large each file is, and presents
   the totals. df just asks the filesystem how much space it has
   left. They seem to be the same thing, but a file without a
   directory entry will affect df but not du.

   When a program is using a file, and you delete the file, the file
   is not really removed from the filesystem until the program stops
   using it. The file is immediately deleted from the directory
   listing, however. You can see this easily enough with a program
   such as more. Assume you have a file large enough that its
   presence affects the output of du and df. (Since disks can be so
   large today, this might be a very large file!) If you delete this
   file while using more on it, more does not immediately choke and
   complain that it cannot view the file. The entry is simply removed
   from the directory so no other program or user can access it. du
   shows that it is gone !X!X it has walked the directory tree and
   the file is not listed. df shows that it is still there, as the
   filesystem knows that more is still using that space. Once you end
   the more session, du and df will agree.

   Note that Soft Updates can delay the freeing of disk space; you
   might need to wait up to 30 seconds for the change to be visible!

   This situation is common on web servers. Many people set up a
   FreeBSD web server and forget to rotate the log files. The access
   log fills up /var. The new administrator deletes the file, but the
   system still complains that the partition is full. Stopping and
   restarting the web server program would free the file, allowing
   the system to release the disk space. To prevent this from
   happening, set up newsyslog(8).

   9.24. How can I add more swap space?

   In the Configuration and Tuning section of the Handbook, you will
   find a section describing how to do this.

   9.25. Why does FreeBSD see my disk as smaller than the
   manufacturer says it is?

   Disk manufacturers calculate gigabytes as a billion bytes each,
   whereas FreeBSD calculates them as 1,073,741,824 bytes each. This
   explains why, for example, FreeBSD's boot messages will report a
   disk that supposedly has 80GB as holding 76319MB.

   Also note that FreeBSD will (by default) reserve 8% of the disk
   space.

   9.26. How is it possible for a partition to be more than 100%
   full?

   A portion of each UFS partition (8%, by default) is reserved for
   use by the operating system and the root user. df(1) does not
   count that space when calculating the Capacity column, so it can
   exceed 100%. Also, you will notice that the Blocks column is
   always greater than the sum of the Used and Avail columns, usually
   by a factor of 8%.

   For more details, look up the -m option in tunefs(8).

     --------------------------------------------------------------

                        Chapter 10 "t^2I-oTH^2z

   Wei-Hon Chen

   10.1. "t^2IDEG_(c)l^3](c)wAE|bth!H

   10.2. ,O|p|oA^2^3ae|a.s 1/4W+-b,^1!H

   10.3. |bS:iS:^1 crontab AE(R)
   *<<a!ANOTDEGCURDEG>>o|NNOTO|NOT"`i^3o 1/4E-a-oDEGT(R)S:!G !S:root:
   not found!"!H

   10.4. NOTDEGCURDEG>>oS:U.QnYENI su |"NOTDEG root (R)E!A.|+-o"`i
   !S:you are not in the correct group to su root!"
   -a-o?u>>~DEGT(R)S:!H

   10.5. S:U|b rc.conf AUNOTONOTYODEG_DEGEAE(R) *,IYENC,CURF?u>>~!A
   |]NOTDEGAE(R) *"t^2IAAU:|"DEGssAA-a-a-o!AS:UuL-akYENh
   1/2s?eYEN|!CS:U,O<<c,>>o?`i!H

   10.6. NOTDEGCURDEG>>oS:U"S?`i-ak^3](c)wS:U-a-o|L-ai 3/4-:!H

   10.7. S:Un<<c,>>o 1/4E *YEN?S:U-a-o"t^2I(c)O"IYENI-a-oAa:
   1/2L^1iNOTM (keyboard mapping)!H

   10.8. NOTDEGCURDEG>>oS:U|b"t^2I+-ODEGE(R)E!A+-o"`i !S:unknown:
   <PNP0303> can't assign resources!" -a-oDEGT(R)S:!H

   10.9. NOTDEGCURDEG>>o user quotas uL-akYEN?+-`^1BS:@!H

   10.10. FreeBSD CURa:'(c) System V IPC (R)ae|!<<u:YENOP:DEG!H

   10.11. S:U,O|p|oAAy sendmail ^3z^1L UUCP "O>> 1/4DEGeP:lYENo!H

   10.12. .iS:UYENI 1/4.+-u^3sCURW-oo,o(R)E,O<<c,>>o^3](c)w<<HYENo>>
   1/4DEGe!H

   10.13. DEG-L-CURF Sendmail YEN~!AAU|^3th"C,P:lYENo|o/-aA
   3/4^1YENiYENH"IYENI(c)O!H

   10.14. S:US:NCURF root +-K 1/2XCURF!I<<c,>>o?`i!H

   10.15. S:U,O<<c,>>oAAy Control-Alt-Delete
   CUR-L-.|<<.s+-ODEGE"t^2I!H

   10.16. S:U,O<<c,>>oS:a DOS CURaa|rAE(R) *<<.s(R)ae|!CURAE|" UNIX
   -a-o!H

   10.17. S:U,O<<c,>>oYENI|W-oUNOTaa+- 1/4 process!H

   10.18. NOTDEG|o|b su CUR@-a 1/2>>!S:UCUR-L-|b root -a-o ACL ,I!H

   10.19. S:U,O<<c,>>o^2 3/4DEG-L- Kerberos!H

   10.20. S:U,O<<c,>>o 1/4WYEN["t^2I-a-oueAA^2 *-oY 3/4-:!H

   10.21. /dev/snd0 ^3oO,E,mDEGuCUR-L-YENX"O!I

   10.22. YENiYENHCUR-L-YENIP:} 3/4-:!A<<.sAA-a"u /etc/rc.conf!B
   |A|,+-ODEGE /etc/rc P:U:?

   10.23. S:U.QnS:aS:U-a-o"t^2I-a@-AA"`i^3I.s-a-o
   -STABLE!A|yNOTO+-o"`i-a-oNOTO -RC (c)I -PRERELEASE!I<<c,>>oCURF!H

   10.24. S:U,OuUn|w,ECUR@O.s-a-o(R)O:CURss!A|yNOTOuL-ak
   chflags!CS:U,O<<c,>>o,N"M!H

   10.25.
   |bS:U-a-o"t^2ICURW!AS:UuL-akAAU:S:o(R)EP:!P:W^1LCUR@NOTiYENHCURW-a-o
   1/2d^3o!I S:U,O<<c,>>o?`i!H

   10.26. NOTDEGCURDEG>>o rpc.statd YENICURF 256 megabytes -a-oDEGO
   3/4D-AAe!H

   10.27. NOTDEGCURDEG>>oS:U"S?`i-ak"u(R)o/ schg AE(R) *-oX 1/4D-!H

   10.28. NOTDEGCURDEG>>o-an"O-a-o.s-a(c) FreeBSD ^1w^3]uL-akS:QYENI
   .shosts S:^1|" SSH >>{AO!H

   10.29. CURDEG>>oNOTO vnlru?

   10.1. "t^2IDEG_(c)l^3](c)wAE|bth!H

   +-q 2.0.5R "`i 2.2.1R!AYENDn-a-o^3](c)wAENOTO
   /etc/sysconfig!C(c)O|^3-a-o?iP:u^3-L-^3Q<<u:(c)w|b^3oOAE!A
   |O"a:YENL^1^3 /etc/rc (DEGN"-L- rc(8)) (c)M /etc/netstart
   YENuNOTOCURTHYENIYEN|!C

   AE[^1i /etc/sysconfig ^3oOAE"A *YEN?"a:EYENH 
   3/4A|XS:A-a-o"t^2I!C^3oOAEYENIuu,NP:n-o!YENH-aiYENU:|o^3B,O(c)n,mCURDEG>>o^3](c)w!C

   |b post-2.2.1 YENH<<aCURI 3.0!A/etc/sysconfig
   YENc,S:o|WNOTDEGCUR@OS:o(R)e(c)o:'yz-a-oAE|WYENs rc.conf(5)
   !A"AYENB>>y-akA^2CURAECURF"C,!C /etc/netstart YENc,S:o|WNOTDEG
   /etc/rc.network |]|^1(c)O|^3-a-oAE(R) *^3-L-YENiYENHYENI cp
   /usr/src/etc/rc* /etc "O<<th"(c)!C

   |b 3.1 YENHCURI!A/etc/rc.conf ^3Q^2 3/4"`i /etc/defaults/rc.conf!C
   CURd,UCUR-L-n 1/2s?e^3oOAE!I |p-aG /etc/defaults/rc.conf
   CUR-o|^3.QnS:oDEGE-a-oP:uYENO/!A
   S:AA^3,O+-N"-oCUR@|ae-a-oCUR-o(R)e<<th"(c)"`i /etc/rc.conf!A
   uM<<a|A *S:iYEN|!C

   "O|p FreeBSD 3.1 CURIYENH<<a-a-o-a(c)YEN>>CUR-o!A|^3CUR@O DNS
   |o/-aA 3/4^1 named!A
   |OS:A.Qn+-ODEGEYEN|!CS:A(c)O>>YnS:@-a-o"AE'NNOTO!G

 # echo named_enable="YES" >> /etc/rc.conf

   .Qn|b FreeBSD 3.1
   CURIYENH<<a-a-o-a(c)YEN>>CURCUR!A+-ODEGEYEN>>|a-oY-aADEGE-a-o,U:!A+-N
   shell script ,m(c)o /usr/local/etc/rc.d YENO/?y CURU!C^3o"C, shell
   script A^3,O^3](c)w|"YENiDEGo|ae!A"AYENBAE|WYENH .sh u^2S:o!C |b
   FreeBSD 3.0 CURIS:o|-a-o-a(c)YEN>>CURCUR!AS:AA^3,O-a 1/2+-u 1/2s?e
   /etc/rc.local AE!C

   /etc/rc.serialYENI"O-a`i(c)lCURAES:C,|CDEGd-
   !]^1^3NOTOAe(c)wDEGd--a-o-S(c)EuYEN!^!C

   /etc/rc.i386 NOTO Intel +-MYENI^3](c)w!A ^1^3NOTO iBCS2 
   1/4OAA(c)INOTO PC "t^2IYEND+-+-YENx^3](c)w!C

   10.2. ,O|p|oA^2^3ae|a.s 1/4W+-b,^1!H

   "IYENI adduser(8) <<u:YENO!C|p-aG>>YnS:o
   1/2AEAo/-a-o"IYENICURe|!!A  1/2D-YENI pw(8) ^3oO<<u:YENO!C

   n|A|,^2 3/4DEG-L-"IYENI-aI!A"IYENI rmuser(8) <<u:YENO!CAU|^3!A
   pw(8) CUR]YENiYENH"IYENI!C

   10.3. |bS:iS:^1 crontab AE(R)
   *<<a!ANOTDEGCURDEG>>o|NNOTO|NOT"`i^3o 1/4E-a-oDEGT(R)S:!G !S:root:
   not found!"!H

   ^3q+-`^3-L-NOTO|]NOTDEG 1/2s?eCURF"t^2I-a-o crontab (/etc/crontab)
   uM<<a'NYENI crontab(1) YENh|w,EYEN|!G

 # crontab /etc/crontab

   ^3o 1/4ES:@NOTOCUR-L-^1i-a-o!C"t^2I-a-o crontab (c)M crontab(1)
   (c)OS:o.s-a-o"IYENI-aI-a-o crontab (R)ae|!"ACUR-L-CUR@ 1/4E
   (crontab(5)
   >>!(c)uCURaaYENoDEGw^1i(R)t^2S:^3B|^3,O^2O-a-o>>!(c)u)!C

   |p-aGS:ACURw,gYENI^3o-oO/CURe-ak!AABYEN~|hYENX-a-o crontab
   YENu'NNOTO /etc/crontab
   -a-o<<th"(c)!AYENuNOTO(R)ae|!NOTO?u>>~-a-o!C
   YENiYENIYENHCURU-a-o(c)RYENOS:RDEG-L-!G

 # crontab -r

   CURU|,S:A 1/2s?e /etc/crontab AE(R) *-a-o(R)EO!A
   S:ACUR-L-YENIS:@YENo|oDEGES:@YENh^3q-a 3/4 cron(8)
   !AYEN||UDEGE.|YENhDEG>>'uNOTOS:_|^3S:oDEGE!C

   |p-aGS:A.Qn"CCURN!B"CP:g!B(c)INOTO"CCURe(c)T(c)wDEGo|aeNOTY"C,DEGES:@CUR@|,!ACUR]^3\YEN[O
   shell script |b /usr/local/etc/periodic
   YENO/?yCURU.|S:o|n!A"t^2I-a-o cron .|(c)T(c)wDEGo|ae periodic(8)
   (c)RYENO!A
   YEN|YENi+-NS:A-a-ou{|!(c)M"a:YEN|-a-o"t^2IP:g'A(c)ECURuS:@CUR@DEG_DEGo|ae!C

   ^3oO?u>>~-a-o-uYEN?`i|]!ANOTO|]NOTDEG"t^2I-a-o crontab
   |^3CUR@OABYEN~-a-oA:ae|`i!A
   >>!(c)u,O(c)RYENOnYENHCURDEG>>o"IYENI-aI"YEN-:DEGo|ae!C|b FreeBSD
   -a-o^1w^3]"t^2I crontab CURCUR!A(c)O|^3-a-oP:uYENO/^3-L-NOTO
   root!C .i^3oO crontab ^3Q.iS:@NOTO root -a-o"IYENI-aI crontab
   (YEN|(c)M"t^2I-a-o crontab NOTO CUR-L- CUR@ 1/4E-a-o)!Acron(8)
   .|YENHNOTDEG root
   |r|eNOTO+-yDEGo|ae-a-o(c)RYENO-a-o^2A:CUR@O|r!A|yNOTO^1e>>UCURW
   "A"S|^3^3o 1/4E-a-o(c)RYENO|s|b!C

   10.4. NOTDEGCURDEG>>oS:U.QnYENI su |"NOTDEG root (R)E!A.|+-o"`i
   !S:you are not in the correct group to su root!"
   -a-o?u>>~DEGT(R)S:!H

   ^3oNOTOCUR@O|wYENth-S(c)E!C.QnS:QYENI su |"NOTDEG root
   ((c)I"a:YEN||^3 superuser AAv-a-o+-b,^1)!AS:ACUR@(c)wn|b wheel
   ,s^2OCUR-o!C|p-aG"S|^3^3oO-S(c)E-a-o,U:!A
   YENo|oCURHYENun|b"t^2I,I|^3+-b,^1!A"AYENB<<eYEN(c)-a 3/4^1D root
   -a-o+-K 1/2X!A'NYENiYENH"u+-o superuser
   uYEN-AA-a-oAAvYENH|s"u"t^2I!C|^3CURF^3oO-S(c)E!A ^3o
   1/4E-a-o+-!-ap'NCUR-L-.|uoYENI!F|p-aG"IYENI-aICUR-L-|b wheel
   ,s^2OCUR-o-a-o,U:!Asu(1) .|AAyYENLI^3s,OuUAa:CURJ+-K 1/2X-a-o
   3/4-:.|^3-L-"S|^3!C

   nAAyNOTYCURHYENiYENHS:QYENI su |"NOTDEG root -a-o,U:!A
   YENunS:aYENLI(c)nCURJ wheel ,s^2OCUR-oS:YYENi!C

   10.5. S:U|b rc.conf AUNOTONOTYODEG_DEGEAE(R) *,IYENC,CURF?u>>~!A
   |]NOTDEGAE(R) *"t^2IAAU:|"DEGssAA-a-a-o!AS:UuL-akYENh
   1/2s?eYEN|!CS:U,O<<c,>>o?`i!H

   .i^1q,-L-DEGYS:A shell S:^1 3/4a,o(R)||W(R)E!AYENun<<o: ENTER
   !AuM<<aDEGo|ae mount / YENHAA-a 1/4g 1/4O|! <<.s+- 3/4,u:(R)UAE(R)
   *"t^2I!CS:ACUR]^3\>>YnDEGo|ae mount -a -t ufs
   !A+-NS:A-oDYENI-a-oCURaa|r 1/2s?e 3/4^1(c)O|b-a-oAE(R) *"t^2I+-
   3/4,u:CURW"O!C|p-aG S:A-oDYENI-a-oCURaa|r 1/2s?e 3/4^1|b-oo,oAE(R)
   *"t^2ICURW-a-o,U:!AS:AYEN^2P:.YENyCURaDEGE+-N-oo,o^3](c)w
   DEG_"O!AYENH<<K+-N-oo,oAE(R) *"t^2I+-
   3/4,u:CURW"O!A(c)INOTO"IYENIYEN>>|a-oYAE(R) *"t^2ICURW-a-o  1/2s?e
   3/4^1!A"O|p ed(1)!C

   |p-aGS:A.Qn"IYENI^1^3 vi(1) (c)INOTO emacs(1) uYEN-a-oYENth?A^1o
   CURaa|r 1/2s?e 3/4^1-a-o,U:!AS:ACUR]>>YnDEGo|ae export TERM=cons25
   !AYENH<<KAAy^3o"C, 1/2s?e 3/4^1-`aDEG-:+-q termcap(5)
   ,e(R)AE(R)w,IAA-a"uYEN? 1/2T-a-o,e(R)AE!C

   .iS:ACURw,gS:^1|"CURF^3o"C,"BAEJ<<a!AS:AYENiYENH.OS:AYEN+-`
   *S:iCURaa-ak?u>>~-a-oCURe|! YENh 1/2s?e /etc/rc.conf AE(R)
   *!C|b(R)O:CURss (kernel)
   +-ODEGE(R)E(c)OAAaYENU:-a-o?u>>~DEGT(R)S:!A-`aDEG-:S:iP:DS:AAE(R)
   *CURCURthCUR@|ae|^3?u>>~!C

   10.6. NOTDEGCURDEG>>oS:U"S?`i-ak^3](c)wS:U-a-o|L-ai 3/4-:!H

   1/2D-DEGN|OCUR@CURU Handbook
   CURCUR!A|^3Ao:|C|L-a-o^3!YEN-:!CYEN|A^3,O-`aDEG-:,N"M
   S:ACURj^3!YEN-:-a-oDEGYAD!C 1/2D-DEGN|O Handbook
   CURCUR-a-o|C|L^3!YEN-:!C

   |^3"C,|L-ai 3/4-:>>YnYEND 3/4-:CURa:'(c)-a-oAAXDEGEu{|!
   (host-based driver) CUR~-`a DEGo|aeYENo|o|C|LYEN\-`a!CFreeBSD
   YEN>>""ACUR-L-CURa:'(c)^3o"C,(c)O? *-a-o !S:WinPrinters!"!C
   |p-aGS:A-a-o|L-ai 3/4-:uL-ak|b DOS (c)I Windows NT 4.0
   CURUDEGo|ae!A"-oYEN|CURj.S:'NNOTOCUR@YENx
   WinPrinter!CS:ADEGssCUR@-`a"IYENI ^3o 1/4E-a-o|L-ai
   3/4-:-a-oS:AE+-ae!A'NNOTO,O,O print/pnm2ppa
   CURa:CUR-L-CURa:'(c)YEN|CURF!C

   10.7. S:Un<<c,>>o 1/4E *YEN?S:U-a-o"t^2I(c)O"IYENI-a-oAa:
   1/2L^1iNOTM (keyboard mapping)!H

   1/2D-DEGN|O Handbook CURCUR-a-o using localization ^3^1,`!ACUR
   *"a:NOTO console setup ^3^1,`!C

   10.8. NOTDEGCURDEG>>oS:U|b"t^2I+-ODEGE(R)E!A+-o"`i !S:unknown:
   <PNP0303> can't assign resources!" -a-oDEGT(R)S:!H

   YENHCURUNOTO+-q FreeBSD-CURRENT ^3q<<H 1/2 * 3/4A-a-oCUR@
   1/2gCURaa^3^1CURCUR,`?yYENX"O-a-o!C

  !S:uL-ak<<u:NOT-L-,e. 1/2 (can't assign resources)!" DEGT(R)S:-aiYENU:               
  "-o"C,,E,mNOTOP:C,^2I-a-o ISA ,E,m!A|O(R)O:CURssCURCURCURw,g 1/2sCURJCUR-L->>{+-o  
  PNP -a-oAAXDEGEu{ |!!C^3o"C,,E,mYEN]NOTAAa: 1/2L+-+-"i                             
  3/4^1!AYENiu{|!CURAES:AA_+-+-"i'^1CURu!AAU|^3'XO 1/4D-.C, ^3]^3AE!C,e.             
  1/2uL-ak<<u:NOT-L-u^1^3o"C,,E,m!ANOTO|]NOTDEG|CURw|^3AAXDEGEu{|!"IYENI"-o"C,|`iS:} 
  CURF!C                                                                             
                    --Garrett Wollman <wollman@FreeBSD.org>, 2001 |~YEN|CURe 24 CURe   

   10.9. NOTDEGCURDEG>>o user quotas uL-akYEN?+-`^1BS:@!H

   * YENi-`aS:A kernel ^3](c)wYEN 1/4YEN[CURJ quotas
     CURa:'(c)(^1w^3]NOTOuL)!C|p-aGNOTO^3o 1/4ECURl-a-o,U:!A "-o>>o
     1/2D-S:aCURU+-^3o|aeYEN["`i kernel ^3](c)wAECUR-o"A<<.s
     1/2sA:P:!B|w,E!G

 options QUOTA

     ^2O,`^3!CURA!A 1/2D-DEGN 3/4\ Handbook CUR-o-a-o quotas ^3^1,`!C

   * 1/2D-CUR-L-n-a 1/2+-u|b / YEN'P:} quotas

   * S:a quotas AE(c)n|bYEN|YEN^2P:.+-j-c-,mCURJ-a-oAE(R)
     *"t^2ICUR-o!AA|"O!G

     AE(R) *"t^2I      Quota AE      
     /usr         /usr/admin/quotas  
     /home        /home/admin/quotas 
     ...          ...                

   10.10. FreeBSD CURa:'(c) System V IPC (R)ae|!<<u:YENOP:DEG!H

   NOTO-a-o!AFreeBSD CURa:'(c) System V-style
   IPC!C^3oYEN]NOTA|@"EDEGO 3/4D-AAe!A
   DEGT(R)S:,o<<H,^1!CS:A>>Yn|bS:A-a-o kernel
   ^3](c)wAECUR-oYEN[CURJCURU|C'X|aeYENH+-ODEGEYEN|I!C

 options    SYSVSHM          # enable shared memory
 options    SYSVSEM          # enable for semaphores
 options    SYSVMSG          # enable for messaging

     Note: |b FreeBSD 3.2
     YENHCURICURS:<<a-a-o-a(c)YEN>>!A^3o"C,?iP:uCURw,gNOTO GENERIC
     (R)O:CURss-a-oCUR@^3!YEN-:!ACUR]'NNOTO>>!YEN|ICURw ,g
     1/2sP:iCURFS:A-a-o"t^2ICURCUR!C

   <<.s 1/2sA:P:"A|w,E!C

   10.11. S:U,O|p|oAAy sendmail ^3z^1L UUCP "O>> 1/4DEGeP:lYENo!H

   ,oAH FreeBSD (R)M,E|O"O-a-o sendmail ^3](c)wNOTO 3/4A|X"-o"C,-a
   1/2+-u^3sCURW-oo>>U-oo,o -a-o-,YENx!C.Q^3z^1L UUCP
   YENae'<<P:lYENo-a-o-,YENxYEN^2P:.YENtYEN~|w,E sendmail
   -a-o^3](c)wAE(R) *!C

   CURaDEGE *S:i /etc/sendmail.cf NOTOu'^1iYEN^2n-a-o!C ^2A: 8
   -a(c)-a-o sendmail
   '-L-"NCUR@OYENth.s-a-oCURJCURfYENH^3z^1LCUR@"C,^1^3 m4(1)
   -a-o^3B^2z'N-`a^2-L-YENI^3](c)wAE!A^3o"AE^1eCURWNOTOCUR@ODEG-a
   1/4h.S:(c)AuYEN-AA-a-oS:THYEN(c)(c)E^3](c)w!C S:AA^3,OYENiYENH|b
   /usr/src/usr.sbin/sendmail/cf YENHCURU,I"IYENIYEN|!G

   DEG^2|pS:ACUR-L-NOTOYENI full sources CURe|!|w,E"t^2I!A"-o>>o
   sendmail ^3](c)wP:uYENO/YENi-`aCURw,gCURA'^2|"|n'XO"O.
   1/2CURAYENNOTAE|buYENuUS:A!ADEG^2^3]S:ACURw,g mount YENu-oD-
   3/4-:!ADEGuYENHCURUDEGES:@!G

 # cd /cdrom/src
 # cat scontrib.?? | tar xzf - -C /usr/src contrib/sendmail

   S:OAAaa.W!A^3oYENu|^3 1/4AECURQ,UO|`iCUR,^2O-a-oCURjCURp!C|b cf
   YENO/?y,I-a-o README YENiYENH'-L-"NCUR@O m4 ^3](c)w-ak-a-oDEGo
   YEN>>CURP:^2D-!C

   YENH UUCP >> 1/4DEGe"O>>!!A<<O/A:^3S:A^3I|n"IYENI mailertable
   -SAI!C<<O/-ocCUR@O,e(R)AE(R)wAAy sendmail
   YENiYENH"IYENIYEN||UCURv-a-o,o(R)|"Mu|!C

   -oYENy!AS:AYEN^2P:.<<O/YENss|UCURv-a-o .mc AE!C
   /usr/src/usr.sbin/sendmail/cf/cf YENO/?yNOTO^3o"C, AE(R)
   *-a-o(R)a!CNOTdNOTYCUR@CURU!ACURw,g|^3|n'XO
   1/2d"OAE!ADEG^2^3]S:ACURw,g(c)R|W|UCURv-a-oAEYENs
   foo.mc!AS:AnDEGu-a-oYENuNOTOS:aYEN|A`a'<<|"CUR@O|^3(R)A:-a-o
   sendmail.cf!G

 # cd /usr/src/usr.sbin/sendmail/cf/cf
 # make foo.cf
 # cp foo.cf /etc/mail/sendmail.cf

   CUR@O"aa<<NOT-a-o .mc AENOTYDEG_"OYENi-`a^1^3^3o 1/4E!G

 VERSIONID(`Your version number')
 OSTYPE(bsd4.4)

 FEATURE(accept_unresolvable_domains)
 FEATURE(nocanonify)
 FEATURE(mailertable, `hash -o /etc/mail/mailertable')

 define(`UUCP_RELAY', your.uucp.relay)
 define(`UUCP_MAX_SIZE', 200000)
 define(`confDONT_PROBE_INTERFACES')

 MAILER(local)
 MAILER(smtp)
 MAILER(uucp)

 Cw    your.alias.host.name
 Cw    youruucpnodename.UUCP

   accept_unresolvable_domains!A nocanonify!A (c)M
   confDONT_PROBE_INTERFACES -S(c)E+-NA *S:KYENo|o|b >>
   1/4DEGeP:lYENo(R)E.|YENI"`i DNS -a-o 3/4-:.|!CUUCP_RELAY
   P:uYENO/-a-oYENX^2{^2zYENN<<U:(c)_(c)C,!A'NCUR-L-nDEGYNOTDEG|oCURF!CA^2^3ae-a-o(c)nCURJCUR@O-oo>>U-oo,o
   CURWYENiYENH^3B^2z .UUCP ueAA-ooDEG`i|`iS:}-a-oYEND
   3/4-:|W-oU!F^3q+-`!AS:AYENu>>Yn|b^3o ,IP:nCURJS:A ISP
   -a-o<<HYENo|^AD-^3B (mail replay)!C

   S:ACURw,gDEGu"`i^3o,ICURF!AS:AAU>>Yn^3oOYENs
   /etc/mail/mailertable!C|p-aGS:AYENu|^3CUR@OYENI "OP:C,>>
   1/4(c)O|^3P:lYENo-a-o^1iYEN~^3q^1D-a-o,U:!AYENHCURU-a-oAE(R)
   *'N"NOTDEG-:CURF!G

 #
 # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
                               uucp-dom:your.uucp.relay

   YENtCUR@OS:o 1/2AEAo/-a-o"OCURlNOTYDEG_"O^1^3^3o 1/4E!G

 #
 # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
 #
 horus.interface-business.de   uucp-dom:horus
 interface-business.de        uucp-dom:if-bus
 interface-business.de         uucp-dom:if-bus
 heep.sax.de                  smtp8:%1
 horus.UUCP                    uucp-dom:horus
 if-bus.UUCP                   uucp-dom:if-bus
                              uucp-dom:

   |pS:A(c)O"-L-!A^3oNOTONOTYO-u^1eAE(R)
   *,I-a-oCUR@^3!YEN-:!C-oCURT|ae^3B^2z-ooDEG`i(c)wS:}<<HYENo
   CUR-L-A^3,O^3QDEGeYENX"`iCUR-o(c)w,o(R)|!A|OYENNNOTY"C, UUCP 
   3/4F(c)~(UUCP neighbor)"uYENN -a-o-S(R)i+-!S:I!A^3oNOTONOTDEGCURF
   !S:AYuu!">> 1/4DEGe-a-o,o(R)|!CCURUCUR@|ae^3B^2z"`i
   YEN>>|aCURACURO-oo,o-ooDEG`i-a-o<<HYENoAAyYEN|YENiYENH"IYENI SMTP
   "O>> 1/4DEGe!C^3I<<a!AUUCP  3/4F(c)~'-L-"`i .UUCP
   ueAA-ooDEG`i-a-oDEGO,u:!ACUR^1^3\CUR@O uucp-neighbor !recipient
   +-AA 1/2
   CUR-o(c)w^3W<<h!C^3I<<aCUR@|ae<<hYENHCUR@O^3ae?W-a-oYENyAIDEGuu^2S:o!AYENH
   UUCP >> 1/4DEGe"`i'-L-"N.i
   S:AYENthYEN@NOTE(c)EP:lYENo^1h-au-a-oUUCP  3/4F(c)~!C(c)O|^3|b
   uucp-dom: Ao:Aa:|r,I-a-o,`AI|W-oUYEN^2P:.^3-L-NOTO|^3(R)A:-a-o
   UUCP  3/4F(c)~!AS:AYENiYENHYENI uuname (c)RYENOYENh 1/2T>>{!C

   '-L-?oS:A^3oOAE(R) *|b"IYENI<<eYEN^2P:.^3QA`a'<<|" DBM
   ,e(R)AE(R)wAE(R) *!A^3I|n|b mailertable ^3ICURW+-YENIuu,N
   1/4gYENX(c)RYENO|C"OS:^1|"^3oOCURuS:@!C.iS:A"C|,S:o'<<S:A -a-o
   mailertable <<aS:AA`NOTO>>YnDEGo|ae^3oO(c)RYENO!C

   ^3I<<a'-L-YENU:!G|p-aGS:ACUR-L-
   1/2T(c)wNOTY"C,-S(c)w-a-o<<HYENo,o(R)|YENiYENI!ADEGO+-oS:a -bt
   ?iP:uYEN["`i sendmail!C^3o.|+-N sendmail +-ODEGE|b address test
   mode!FYENun<<o:CURU
   0!A+-uuU?eCURJS:AS:AE+-ae'u,O-a-o<<HYENo,o(R)||`iS:}!C
   ^3I<<aCUR@|aeS:iP:DS:A"IYENICUR-o^3!-a-o<<HYENoYENN^2zu{|!!AYENN^2zu{|!-a-o.|^3q-a
   3/4YENO/-a-oYEND 3/4-:!A
   YENHCURI(YENi-`aA`a'<<-a-o)|`iS:}!CnA-:P:}|^1 1/4O|! 1/2D-<<o:
   Control-D!C

 % sendmail -bt
 ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
 Enter <ruleset> <address>
 > 3,0 foo@example.com
 canonify           input: foo @ example . com
 ..
 parse            returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . >
 > ^D

   10.12. .iS:UYENI 1/4.+-u^3sCURW-oo,o(R)E,O<<c,>>o^3](c)w<<HYENo>>
   1/4DEGe!H

   |p-aGS:ACURw,g|^3CUR@O(c)T(c)w-a-o IP  1/4AE|r!AS:ACUR-L->>Yn 1/2O
   3/4aYENo|oCUR-o(c)wE!C^3]|n
   S:An<<u:(c)w-a-o-oo,o|W-oU!A"a:YENL-a-o sendmail
   ^3-L-.|ADEGS:ADEGuS:^1!C

   |p-aGS:A(R)^3"`i-a-oNOTODEGE-oADEGt,m-a-o IP  1/4AE|r|O"IYENI
   1/4.+-u ppp ^3s+-u"`i-oo>>U-oo ,o!AS:AYENi-`aCURw,g|bS:A-a-o ISP
   <<HYENoYEND 3/4-:CURW|^3CUR@O<<H 1/2c!CDEG^2^3]S:A-a-o ISP
   -ooDEG`i NOTO example.net!AS:A-a-o"IYENI-aI|W -oUNOTO
   user!CYENc,DEG^2^3]S:A-oU|UCURv-a-oYEND 3/4-:|W-oUNOTO bsd.home
   |OS:A-a-o ISP S:iP:DS:AYENiYENH"IYENI relay.example.net
   .iS:@<<HYENo|^AD-^3B!C

   NOTDEGCURF+-qS:A-a-o<<H
   1/2c+-u|NOT<<HYENo!AS:A+-N>>Yn|w,E"u<<Hu{|!YENH<<K+-q<<H
   1/2c"u|^<<HYENo!C Fetchmail NOTOCUR@OCUR-L-?u-a-o?i
   3/4U:!A|]NOTDEGYEN|CURa:
   '(c)^3\|hCUR-L-|P-a-o^3qDEGT"o(c)w!A^3q+-`S:A-a-o ISP .|'-L-"N
   POP3!C|p-aGS:A?i 3/4U:"IYENI user-ppp!AS:AYENiYENH|b^3s
   1/2u"`i-oo,o|"YEN\<<a|UDEGES:`i"uS:A-a-o<<HYENo!AYENun|b
   /etc/ppp/ppp.linkup,I+-^3](c)wYENHCURU^3oP:u!G

 MYADDR:
   !bg su user -c fetchmail

   DEG^2"IS:AYEN?"IYENI sendmail (|pCURU(c)OYENU:)
   P:C,DEGe<<HYENo"`i<<DYEN>>|a+-b,^1!A,mCURJYENHCURU(c)RYENO!G

   !bg su user -c "sendmail -q"

   |bCURW+-"-oP:u(c)RYENOCURS:<<a!C^3o.|+-j-c- sendmail
   |b^3s+-uCURW-oo,o<<aDEG"CURWP:}(c)l^3B^2z mailqueue!C

   S:UDEG^2^3]S:A|b bsd.home  3/4-: 3/4^1CURW|^3CUR@O user
   -a-o+-b,^1!C|b bsd.home  3/4-: 3/4^1CURW user
   -a-o(R)aYENO/?y,I<<O/YENssCUR@O .fetchmailrc -a-oAE(R) *!G

 poll example.net protocol pop3 fetchall pass MySecret

   uLP:.AO/"YEN!A^3oOAEDEG-L-CURF user YEN~CUR-L-A^3,O^3QYENo
   |oCURHAA-a"u!A|]NOTDEGYEN|YEN]S:t MySecret ^3oO+-K 1/2X!C

   NOTDEGCURF|b+-H<<H(R)E|^3YEN? 1/2T-a-o(c)iAY
   from:!AS:AYEN^2P:.S:iP:D sendmail "IYENI user@example.net |O<<D
   user@bsd.home!CS:AYENi-`a.|S:AE+-aeS:iP:D sendmail +-q
   relay.example.net DEGeYENX(c)O|^3<<HYENo!A
   YEN[S:O:<<HYENoP:C,DEGe!C

   YENHCURU-a-o .mc AEA^3-`a-o!"NOTS:A-a-on"D!G

 VERSIONID(`bsd.home.mc version 1.0')
 OSTYPE(bsd4.4)dnl
 FEATURE(nouucp)dnl
 MAILER(local)dnl
 MAILER(smtp)dnl
 Cwlocalhost
 Cwbsd.home
 MASQUERADE_AS(`example.net')dnl
 FEATURE(allmasquerade)dnl
 FEATURE(masquerade_envelope)dnl
 FEATURE(nocanonify)dnl
 FEATURE(nodns)dnl
 define(`SMART_HOST', `relay.example.net')
 Dmbsd.home
 define(`confDOMAIN_NAME',`bsd.home')dnl
 define(`confDELIVERY_MODE',`deferred')dnl

   |p|oA`a'<<^3oO .mc AE(R) *"`i sendmail.cf AE-a-o,O^2O^2O,`!A
   1/2D-DEGN|OCURWCUR@,`!C YENtYEN~!A|bS:o.s sendmail.cf
   YENH<<aCUR-L-nS:NDEGO<<.s+-ODEGE sendmail!C

   10.13. DEG-L-CURF Sendmail YEN~!AAU|^3th"C,P:lYENo|o/-aA
   3/4^1YENiYENH"IYENI(c)O!H

   Sendmail NOTO FreeBSD ^1w^3]"IYENI-a-oP:lYENo|o/-aA
   3/4^1!A|yNOTOS:AAUNOTOYENiYENH<<U:(R)e(c)o:|aYENH"a:YEN|
   P:lYENo|o/-aA 3/4^1 ("O|p!A+-q port |w,E-a-oP:lYENo|o/-aA 3/4^1)
   "uYENNCURS:!C

   port ,I|^3<<U:|hYENi"N?i 3/4U:-a-oP:lYENo|o/-aA 3/4^1!A^1^3
   mail/exim!B mail/postfix!B mail/qmail!B mail/zmailer uYEN!A
   'NNOTO'XO<<U:"u:AAw-ai-a-o?i 3/4U:!C

   |h 1/4E?i 3/4U:NOTO|n"AE!A|OYENBCURj(R)a|^3^3\|hP:lYENo|o/-aA
   3/4^1YENiYENH"IYENICUR]^3Q>>{NOTDEGNOTO |n"AE!F(c)OYENH 1/2D-A
   *S:K|b^3q<<H 1/2 * 3/4A,IDEGY^1^3 !S:Sendmail |^3CURn Qmail
   |nP:U:!H!" ^3o 1/4E-a-oDEGYAD!C|p-aGS:A-u-a-o<<U:.QDEGY-a-o,U:!A
   1/2D-YENy"`i^3q<<H 1/2 * 3/4A archive
   ,IS:a:CUR@CURU!C"CCUR@OP:lYENo|o/-aA
   3/4^1-a-oAuAI>>P-EAI!AYENH<<eCURj.S:'NCURw,g DEGQ 1/2
   *|n'X|,CURF!C

   10.14. S:US:NCURF root +-K 1/2XCURF!I<<c,>>o?`i!H

   CUR-L-nAAaa.W!IYENun<<.s+-ODEGE"t^2I!A|bNOTY"`i Boot: (R)E?eCURJ
   boot -s S:YYENiP:iCURJ^3ae"IYENI-aI 1/4O|! (|b 3.2-RELEASE
   CURS:<<e-a-o-a(c)YEN>> 1/2D-S:iYENI -s)!C |bDEGYn"IYENIthO shell
   (R)E!A<<o:CURU ENTER!CS:A.|NOTY"`iCUR@O # -a-o'-L-YENU:,^1!A?eCURJ
   mount -u / YENH<<.s+- 3/4CURW(mount) S:A-a-o(R)UAE(R)
   *"t^2IYENi"NAA-a/ 1/4g!CDEGo|ae passwd root YENHS:o'<< root +-K
   1/2X!AuM<<aDEGo|ae exit(1) A:~A:o+-ODEGEu{S:C,!C

   10.15. S:U,O<<c,>>oAAy Control-Alt-Delete
   CUR-L-.|<<.s+-ODEGE"t^2I!H

   |p-aGS:ANOTO"IYENI FreeBSD 2.2.7-RELEASE
   (c)ICURS:<<a-a(c)YEN>>-a-o
   syscons("t^2ICUR-o(c)w-a-oYEND+-+-YENxAAXDEGEu{|!)!AS:aCURU|C^3o|ae(c)n"`i
   kernel ^3](c)wAECUR-o!A uM<<a<<DEGuCUR@O.s-a-o(R)O:CURss!G

 options SC_DISABLE_REBOOT

   YNOTO"IYENI FreeBSD 2.2.5-RELEASE (c)ICURS:<<a-a(c)YEN>>-a-o PCVT
   YEND+-+-YENxAAXDEGE u{|!!A<<hYENHCURU|C?iP:uYENN'A!G

 options PCVT_CTRL_ALT_DEL

   "a:YENLS:o|'A-a-o FreeBSD -a(c)YEN>>!A 1/2D-
   *S:iS:AYEN?|b"IYENI-a-oYEND+-+-YENxAa: 1/2L^1iA^3!A "A+-N(c)O|^3
   boot Ao:Aa:|rYENH nop "uYENN!CCUR-o(c)w-a-oAa: 1/2L^1iA^3NOTO|b
   /usr/share/syscons/keymaps/us.iso.kbd!C
   S:AYENi-`a>>Yn(c)uYENO-a-oS:h(c)J /etc/rc.conf YENhAA-a"u ^3oOAa:
   1/2L^1iA^3YENH 1/2T<<OS:oDEGEYENI(R)A:!C.iuM|p-aGS:AYEN?|bYENI
   3/4A|XS:ADEGeA:y-a-oAa: 1/2L^1iA^3!A S:AA^3,O 1/2s?e"-oCUR@O!C

   10.16. S:U,O<<c,>>oS:a DOS CURaa|rAE(R) *<<.s(R)ae|!CURAE|" UNIX
   -a-o!H

   YENun"IYENI^3oO perl (c)RYENO!G

 % perl -i.bak -npe 's/\r\n/\n/g' file ...

   file 'NNOTOn^3B^2z-a-oAE(R) *!C^3oO
   *S:iNOTO|bCUR-o^3!S:^1|"!A`i(c)l-a-oAE(R) *.|Ax|s|"
   DEGAEAE|WNOTDEG .bak -a-oAE(R) *!C

   (c)I-aIS:AYENiYENH"IYENI tr(1) ^3oO(c)RYENO!G

 % tr -d '\r' < dos-text-file > unix-file

   dos-text-file NOTOYEN]S:t DOS CURaa|r-a-o AE(R) *!A|O
   unix-text-file <<hNOTOYEN]S:tA`a'<<
   -a-o?eYENXu^2-aG!C^3oCURn"IYENI perl AUnS:O:CURWCUR@AIAI!C

   10.17. S:U,O<<c,>>oYENI|W-oUNOTaa+- 1/4 process!H

   "IYENI killall(1) !C

   10.18. NOTDEG|o|b su CUR@-a 1/2>>!S:UCUR-L-|b root -a-o ACL ,I!H

   ^3oO?u>>~NOTO|]NOTDEG Kerberos
   CURA'^2>>{AO"t^2I!C^3oODEGYAD"ACUR-L-NOTO<<U:A:Y<<
   |yNOTOYENOCURH^1 1/2.D-!CS:AYENiYENHYENI -K ?iP:uYENhDEGo|ae
   su!A(c)INOTO^1^3CURUODEGYAD(c)O'yz-a-o ^2 3/4DEG-L- Kerberos!C

   10.19. S:U,O<<c,>>o^2 3/4DEG-L- Kerberos!H

   n+-q"t^2I,I^2 3/4DEG-L- Kerberos!A<<,ES:AYEN?|bDEGo|ae-a-o release
   -a(c)YEN>>-a-o bin distribution!C|p-aGS:A|^3 CDROM!AS:AYENiYENH
   mount cd(DEG^2^3]|b /cdrom) "ADEGo|ae!G

 # cd /cdrom/bin
 # ./install.sh

   (c)I-aIS:ACUR]YENiYENH+-N /etc/make.conf ,I-a-o "MAKE_KERBEROS"
   ?iP:uYENth^3-L-(R)^3+- 1/4!AuM<<a|A build world.

   10.20. S:U,O<<c,>>o 1/4WYEN["t^2I-a-oueAA^2 *-oY 3/4-:!H

   |p-aGS:A|^3^3\|h telnet!Assh!AX (c)INOTO screen
   "IYENI-aI!AS:A(c)I^3\.|YENIS:^1 ueAA^2 *-oY
   3/4-:!A^3o-`a+-D-S:A<<c,>>oYEN[S:o|h!G

    1. <<O/YENss"A|w,ECUR@O.s-a-o kernel "AYENBS:a^3oCUR@|ae

 pseudo-device pty 256

       YEN[CURJ"`i^3](c)wAE,I!C

    2. DEGo|ae^3oO(c)RYENO!G

 # cd /dev
 # sh MAKEDEV pty{1,2,3,4,5,6,7}

       .|^3yYENX 256 OueAA^2 *-oY 3/4-:-a-o,E,m,`AI!C

    3. 1/2s?e /etc/ttys "AYEN[CURJ^2AA|X 256 O^2 *-oY 3/4-:-a-o|ae
       1/4AE!CYEN|IA^3,O^2AA|XCURw,g|s|b^3aeP:u-a-o(R)ae|!!AA|"O"O>>!!A
       YEN|INOTYDEG_"O^1^3!G

 ttyqc none network

       |rYENA^3]p-a-oP:P:S:C,NOTO
       tty[pqrsPQRS][0-9a-v]!A"IYENIYEN?^3W-aiYENU:|!!C

    4. YENI.s-a-o kernel <<.s+-ODEGE^1q,-L-'NYENiYENHCURF!C

   10.21. /dev/snd0 ^3oO,E,mDEGuCUR-L-YENX"O!I

   "A"S snd ^3oO,E,m-a-o|s|b!C^3oO|W|r NOTOYENI"O.iS:@|UO^2O|"
   FreeBSD AnuAAXDEGEu{|!^2O!A 1/2N|p mixer!A sequencer!AYENHCURI dsp
   -a-oA^2-oU!C

   YENiYENHYENIYENHCURU-a-o(c)RYENOS:@YENX^3o"C,,E,m!G

 # cd /dev
 # sh MAKEDEV snd0

   10.22. YENiYENHCUR-L-YENIP:} 3/4-:!A<<.sAA-a"u /etc/rc.conf!B
   |A|,+-ODEGE /etc/rc P:U:?

   YENyP:iCURJ^3aeCURH"IYENI-aI 1/4O|!!AuM<<a|A|^"`i|h"IYENI-aI
   1/4O|!!C

   |bYEND+-+-YENxDEGo|ae!G

 # shutdown now
 (Note: without -r or -h)

 # return
 # exit

   10.23. S:U.QnS:aS:U-a-o"t^2I-a@-AA"`i^3I.s-a-o
   -STABLE!A|yNOTO+-o"`i-a-oNOTO -RC (c)I -PRERELEASE!I<<c,>>oCURF!H

   A^2^3ae|a>>!!G"-oYENuNOTO|W|r|OCURw!CRC -a-o.N<<a:NOTO !S:Release
   Candiate!A
   uo|aeO?i-a(c)YEN>>!"!AYEN|-aiYENU:.s-a(c)YEN>>S:O:nuo|aeCURF!C|b
   FreeBSD CURCUR!A -PRERELEASE ^3q+-`NOTOuo|ae<<e-a-ou{|!
   1/2Xau^2-a-oYENN|Wuu:!C(|^3"C,uo|ae-a(c)YEN>>CURCUR!A -BETA 
   1/4D-AAO,o -PRERELEASE NOTONOTU|P.N<<a:-a-o!C)

   ,O^2O|a>>!!GFreeBSD
   +-q"aO|aCUReCURACURa:YENXYEN|-a-ouo|ae-a(c)YEN>>!CYEND-a(c),^1!B
   AI^1s!Brelease ("O|p 3.0-RELEASE CURI 4.0-RELEASE)
   -a-o!ANOTO+-quo(R)i^1Lu{
   P:}(c)l(R)ECURACURa:YENX"O-a-o!A^3q+-`-oUNOTDEG -CURRENT
   !C|^3DEGAE-a(c),^1-a-o-a(c)YEN>> ("O|p 3.1-RELEASE (c)I
   4.2-RELEASE)!ANOTO NOT!AAD-a-o -STABLE
   CURACURa:CURCUR-a-ouo|ae-a(c)YEN>> S:O:.O!C+-q 4.3-RELEASE
   P:}(c)l!A"CCUR@Ouo|ae-a(c)YEN>>|^3YEN||UCURv-a-oCURACURa:!AYENiNOTDEG
   DEG 3/4|n.YEN<< *<<O|u-a-ouo(R)i^3t<< *
   (^3q+-`YENu.|S:@|wYENthCURe+--a-oS:o.s) -a-oCURH(c)OYENI!C

   .C,^3AEn>>sS:@uo|ae-a(c)YEN>>(R)E!A"a:(c)O|b-a-oCURACURa:.|,g^1LCUR@(c)w-a-ou{S:C,!C|^3CUR@ONOTO
   u{|! 1/2Xau^2!C.iu{|!
   1/2Xau^2P:}(c)l(R)E!ACURACURa:|W-oU.|S:o|W!AYENHCURINOTMYEN|S:O:n|"NOTDEG
   CUR@Ouo|ae-a(c)YEN>>CURF!CA|O"OCURl!A|p-aG`i"O-a-oCURACURa:YENs
   4.5-STABLE!AYEN|-a-o|W|r .|AAU:|" 4.6-PRERELEASE YENH-aiYENU:u{|!
   1/2XCURwau^2!A"AYENBABYEN~-a-ouo|ae<<e'u,O
   +-NnP:}(c)lCURF!C-a:AIS:oYEN?CUR'YENi|^^3o/!AYENH|"NOTDEGuo|ae-a(c)YEN>>-a-oCUR@^3!YEN-:!C.iu{|!
   1/2X
   |^3CURFYENi|"NOTDEGuo|ae-a(c)YEN>>-a-oAuS:I(R)E!AYEN|-a-o|W|r'N.|AAU:|"
   4.6-RC!AYENH-aiYENU:uo|ae -a(c)YEN>>S:O:|nCURF!CP:iCURJ RC
   P:YENNOTq<<a!AYENu|^3S:a:"`i-a-o^3I|^3 1/4vAAT-a-o-a:AICUR~.|^3Q
   *YEN?!C .iuo|ae-a(c)YEN>> (YEN>>"OCURCURNOTDEG 4.6-RELEASE)
   ^2-L-YENI<<a!Auo|ae-a(c)YEN>>.||^3|UCURv-a-oCURACURa:!A
   `iCURACURa:.|^3QS:o|WNOTDEG 4.6-STABLE!C

   .Qn+-o-a 3/4S:o|h|^3Ao:-a(c)YEN>>,^1 1/2X>>P|U CVS
   CURACURa:-a-o,eDEGT!A 1/2D-DEGN|O Release Engineering CUR@CURaa!C

   10.24. S:U,OuUn|w,ECUR@O.s-a-o(R)O:CURss!A|yNOTOuL-ak
   chflags!CS:U,O<<c,>>o,N"M!H

   A^2^3ae|a>>!!GS:A-a-o securelevel YENi-`aCURj(c)o^1s!C-a
   1/2+-u<<.sP:} 3/4-:"`i ^3aeCURH 1/4O|!!A|A|w,E(R)O:CURss!C

   ,O^2O|a>>!!GFreeBSD |b securelevel
   CURj(c)o^1s+-!-apCURU!ACUR-L-CUR^1^3\ AAU:S:o"t^2I-oX 1/4D-
   (system flags)!CS:AYENiYENHYENI^3oO<<u:YENOAENOTdS:A-a-o
   securelevel!G

 # sysctl kern.securelevel

   S:A"S|^3?`i-akDEGS:C
   securelevel!FS:AYEN^2P:.+-ODEGE"t^2I"`i^3aeCURH 1/4O|!YENH
   |w,E(R)O:CURss!A(c)INOTO *S:i /etc/rc.conf CUR-o-a-o securelevel
   |A<<.sP:} 3/4-:!C 1/2D-DEGN|O init(8) >>!(c)uCURaaYENo!AYENH"u+-o
   S:o|h|^3Ao: securelevel -a-o,eDEGT!AAU|^3 /etc/defaults/rc.conf
   (c)M rc.conf(5) >>!(c)uCURaaYENo!AYENH"u+-oS:o|h|^3Ao: rc.conf
   -a-o,eDEGT!C

   10.25.
   |bS:U-a-o"t^2ICURW!AS:UuL-akAAU:S:o(R)EP:!P:W^1LCUR@NOTiYENHCURW-a-o
   1/2d^3o!I S:U,O<<c,>>o?`i!H

   A^2^3ae|aA?!GS:A"t^2I-a-o securelevel CUR]^3\CURj(c)o 1!C-a
   1/2+-u<<.sP:} 3/4-:|U: ^3aeCURH 1/4O|!!AuM<<a|A *S:i(R)EP:!!C

   ,O^2O|a>>!!G|b securelevel CURj(c)o 1 -a-o+-!-apCURU!AFreeBSD
   CUR-L-CUR^1^3\(R)EP:!
   AAU:DEGECURj(c)oCUR@NOTi!CS:AYENiYENHYENIYENHCURU-a-o(c)RYENO"OAENOTdYENO/<<e-a-o
   securelevel!G

 # sysctl kern.securelevel

   S:AuL-akDEGS:C securelevel!FS:AYEN^2P:.+-ODEGE^1q,-L-|U:^3aeCURH
   1/4O|!CURUYENH *S:i(R)EP:!!A (c)INOTO *S:i /etc/rc.conf |A<<.sP:}
   3/4-:!C 1/2D-DEGN|O init(8) >>!(c)uCURaaYENo!AYENH"u+-oS:o|h|^3Ao:
   securelevel -a-o,eDEGT!AAU|^3 /etc/defaults/rc.conf (c)M
   rc.conf(5) >>!(c)uCURaaYENo!AYENH"u+-oS:o|h|^3Ao: rc.conf
   -a-o,eDEGT!C

   10.26. NOTDEGCURDEG>>o rpc.statd YENICURF 256 megabytes -a-oDEGO
   3/4D-AAe!H

   CUR-L-!A"-oCUR-L-NOTO memory
   leak!A|OYENBYEN|CUR]CUR-L-NOTO-u-a-oYENICURF 256 Mbyte -a-oDEGO
   3/4D-AAe!CYEN|YENuNOTO^3ssAAw (.N<<a:'NNOTOA`.|^3o 1/4ES:@)
   +-NCUR@-a-^2 1/4-a-oDEGO 3/4D-AAe
   NOTMAA"`iYEN||UCURv-a-o|`iS:}-aAAP:!!AYENHCURe<<KS:@"AE!C'NS:TH^3N|O"YEN!A^3o
   1/4E"A"S|^3 CURDEG>>oCUR-L-^1i!F^3o 1/4EYENuNOTO.|AAy top(1) (c)M
   ps(1) A~CUR@CURj,o|OCURw!C

   rpc.statd(8) .|+-NYEN|-a-o-aNOT-oAAE(R) * (|`i(c)o /var )
   NOTM(R)g|U:YEN|-a-o|`iS:}-aAAP:!,I!FNOTDEGCURF"
   3/4CURi>>Yn-a-o(R)EO|A 1/4WCURj(c)O 
   3/4EP-a-o<<.sNOTM(R)g!AYEN|CUR@|,.|"IYENINOTU.iCURj-a-oCURjCURp!C+-qu{|!
   1/2X"ONOTY-a-o,U:'N S:o(c)uAAaCURF!AYENiYENHNOTY"`i mmap(2)
   -a-o-ao/<< *DEGN 1/4AENOTDEG 0x10000000 !AYEN|NOTO IA32
   NOT[-ocCURW-a-oCURQCUR>>CURACURS:CUR@-a-o(c)wS:}-aAAP:!!ACUR]'NNOTO
   256MB!C

   10.27. NOTDEGCURDEG>>oS:U"S?`i-ak"u(R)o/ schg AE(R) *-oX 1/4D-!H

   S:AYEN?|bCUR@O'-L-DEG-aCURF securelevel (CUR]'NNOTOCURj(c)o 0)
   -a-o"t^2I^1BS:@!C DEGS:C securelevel |A,O,ONOTY!C 1/2D-DEGN|O FAQ
   CURCUR^1i securelevel -a-o>>!(c)u (c)M init(8) >>!(c)uCURaaYENo!C

   10.28. NOTDEGCURDEG>>o-an"O-a-o.s-a(c) FreeBSD ^1w^3]uL-akS:QYENI
   .shosts S:^1|" SSH >>{AO!H

   NOTDEGCURDEG>>o-an"O.s-a(c) FreeBSD .shosts >>{AO^1w^3]
   NOTDEG"u(R)o/-a-o`i|]!ANOTO|]NOTDEG ssh(1) ^1w^3]CUR-L-|w,ENOTDEG
   suid |" root!Cn !S: *YEN?!" ^3oAI!AS:AYENiYENHS:@CURU|C-a-o
   YENo|oCUR@YENo"AE!G

     * nCUR@^3OYENAP:h,N"M!A 1/2D-+-N /etc/make.conf ,I-a-o
       ENABLE_SUID_SSH ^3]|" true !AuM<<a|A<<.s build ssh
       ((c)INOTODEGo|ae make world)!C

     * YENuS:@CUR@(R)E-a-o *YEN?-a-o,U:!AYENiYENH root "YEN-: DEGo|ae
       chmod 4755 /usr/bin/ssh +-N /usr/bin/ssh ^3]|" 4555 !CuM<<a+-N
       ENABLE_SUID_SSH= true YEN[CURJ /etc/make.conf ,I!A^3o
       1/4ECURU|, make world DEGo|ae'N.|YENI(R)A:CURF!C

   10.29. CURDEG>>oNOTO vnlru?

   .i"t^2I^1F"`iCURW kern.maxvnodes (R)E!A vnlru .|^2MDEG-L-"AA:A(c)n
   vnode!C^3oO(R)O:CURss
   DEGo|ae-ou:CURj^3!YEN-:-a-o(R)EP:!^3-L-"S"AES:@!AYENu|^3.iS:A|^3<<U:CURj-a-oDEGO
   3/4D-AAe!A|OYENB YEN?|b|s"uCURW,UOCURpAE(R)
   *(R)E!ACUR~.|^3Q+-ODEGE!C

     --------------------------------------------------------------

            Chapter 11 X Window System CURI Virtual Consoles

   Wei-Hon Chen

   11.1. S:U.QnDEGo|ae X !AS:U,O<<c,>>oDEGu!H

   11.2. S:U ,OuU nDEGo|ae X, |yNOTO.iS:UAa:CURJ startx (R)E!A+-o"`i
   !S:KDENABIO failed (Operation not permitted)!"
   ?u>>~!CS:U,O<<c,>>o?`i!H

   11.3. NOTDEGCURDEG>>oS:UCUR-L--`a|b X ,I"IYENI.AE^1<<!H

   11.4. .AE^1<<-a-o-ou 1/2u:!A-`a|b X ,I+-"IYENIP:U:!H

   11.5. NOTDEGCURDEG>>o X Window
   -a-o?i^3ae(c)M^1i,U:(R)O/CUR-L--`aYEN?+-`^1BS:@!H

   11.6. CURDEG>>oNOTO virtual
   console!HS:Un<<c,>>oDEGuCUR~-`aYENI|hCUR@AI!H

   11.7. S:Un<<c,>>o+-q X CURA'<<"`i virtual console!H

   11.8. S:Un<<c,>>oDEGuCUR~-`a|bP:} 3/4-:(R)E+-ODEGE XDM!H

   11.9. NOTDEGCURDEG>>o.iS:UDEGo|ae xconsole (R)E!AuoYENICURF
   !S:Couldn't open console!" -a-o?u>>~!H

   11.10. YENH<<eS:UYENiYENHYENHCUR@-e"IYENI-aIDEGo|ae
   XFree86!ANOTDEGCURDEG>>o^2{|bYEN|>>!S:UCUR@(c)wn YENH root
   CUR~-`aDEGo|ae!H

   11.11. S:U-a-o PS/2 .AE^1<<|b X CURCUR|^3AICUR-L-YEN?+-`!H

   11.12. S:U-a-o PS/2 .AE^1<<CUR-L--`a^3z^1L MouseSystem "O^1BS:@!H

   11.13. .iS:U<<O/YENss X u{|!(R)E!Aimake >>!YEN|S:a:CUR-L-"`i
   Imake.tmpl!CYEN||bth"`a!H

   11.14. S:U|b build CUR@O X A^3YENIu{|!!AYEN|>>Yn XFree86
   3.3.x!A|yNOTO S:UCURw,g|w,E XFree86 4.x CURF!CS:U,O<<c,>>o?`i!H

   11.15. S:Un<<c,>>oDEGuCUR~-`a^3](c)wYEN-a-oJCURlYENI-a-o.AE^1<<!H

   11.16. n|p|o|w,E splash
   ^1IS:IAAaYENU:u{|!!H"-o,IYENiYENHS:a:+-o"`i(c)O!H

   11.17. S:U-`a|b X ,I"IYENIAa: 1/2LCURW-a-o Windows (R) P:U:!H

   11.18. S:Un<<c,>>o 1/4ECUR~-`a+-o"`i OpenGL -a-o 3D
   uwAAeYEN[^3tYEN\-`a!H

   11.1. S:U.QnDEGo|ae X !AS:U,O<<c,>>oDEGu!H

   ^3IA^2^3ae-a-oCURe-ak'NNOTO|b|w,E"t^2I-a-o(R)EOCUR@"O:|w,E!C

   uM<<aNOTYNOTY xorgconfig(1) -a-oCURaaYENo!A^3oOu{|!YENiYENH
   ADEG+-z^3](c)w Xorg NOTUAo:^3](c)w!A"IYEN|-`aDEG-:YEN?
   1/2T^1BYENI+-z-a-oAAaYENU:YENd!B.AE^1<<uYENP:gAa:!C|^1YEN~!AAUYENiYENHYENI
   xorgcfg(1) -a-o^1IS:ICURP:+-"ODEGuNOTUAo:^3](c)w!C

   +-z(c)I^3\CUR].Q,O,ONOTY Xaccel server!C,O+-! 1/2D-NOTY Xi
   Graphics ^3oCUR@NOTq!C

   11.2. S:U ,OuU nDEGo|ae X, |yNOTO.iS:UAa:CURJ startx (R)E!A+-o"`i
   !S:KDENABIO failed (Operation not permitted)!"
   ?u>>~!CS:U,O<<c,>>o?`i!H

   S:A-a-o"t^2ICUR@(c)w'-L-DEG-aCURF
   securelevel!A^1iCUR-L-^1i!H|bCUR@O'-L-DEG-aCURF securelevel
   -a-o"t^2ICURW!ANOTOu'^1iuL-akDEG_DEGE X -a-o!C.Q-a
   3/4^1DNOTDEGCURDEG>>o!A  1/2D-DEGN|O init(8) >>!(c)uCURaaYENo!C

   (c)OYENH^3oODEGYADAAU:|"!GS:AAU-`a<<c,>>o?`i!CDEGoYEN>>CURWS:A|^3"a-oO/?i
   3/4U:!G +-NS:A-a-o securelevel ^3]|^^1s (^3q+-`|b /etc/rc.conf
   ,I+-^3](c)w)!A(c)INOTO|b+-ODEGE(R)EDEGo|ae xdm(1) (|b securelevel
   ^3Q-a@DEG-a<<e)!C

   1/2D-DEGN|O Q: 11.8. YENH"u+-oS:o|h|^3Ao:+-ODEGE(R)E DEGo|ae
   xdm(1) -a-o,eDEGT!C

   11.3. NOTDEGCURDEG>>oS:UCUR-L--`a|b X ,I"IYENI.AE^1<<!H

   |p-aG+-zYENI-a-oNOTO syscons (CUR-o(c)w-a-o console AAXDEGEu{|!)
   -a-o,U:!A+-zYENiYENH ,gYENN^3](c)w FreeBSD "OAAyYEN|CURa:'(c)|b"CO
   virtual console "IYENI.AE^1<<!CNOTDEGCURF A *S:K(c)M X ^2-L-YENI
   1/2A:NOTd-!Asyscons "IYENICURFCUR@OYENsDEGu /dev/sysmouse
   -a-oueAA,E,m!C(c)O|^3.AE^1<<^2-L-YENI-a-o event ^3-L-.|S:QYENI
   moused "O 1/4g"`i sysmouse ^3oO,E,m!C|p-aG+-zS:AE+-ae|bCUR@O
   (c)IYENHCURW-a-o virtual console CURW"IYENI.AE^1<<!A"AYENB
   -`aDEG-:"IYENI X -a-o,U:!A 1/2D-DEGN|O Q: 4.4.4. "AYENB^3](c)w|n
   moused!C

   uM<<a 1/2s?e /etc/XF86Config ^3oOAE(R) *!A "AYENB
   1/2T>>{S:A|^3YENHCURU^3o'X|ae-a-o^3](c)w!C

 Section         Pointer
 Protocol        "SysMouse"
 Device          "/dev/sysmouse"
 ....

   YENHCURW-a-o"OCURl!A 3/4AYENI(c)o XFree86 3.3.2
   CURI"a:<<a-a-o-a(c)YEN>>!CYENI(c)oS:o|-a-o -a(c)YEN>>-a-o!A"a:
   Protocol A^3NOTDEG MouseSystems!C

   |^3"C,CURHCURn,u^3ssAAw|b^3](c)w X -a-o(R)EOYENI /dev/mouse
   ^3oO,E,m!C|p-aG+-znAAyYEN|-`aDEG-:
   YEN?+-`CURuS:@-a-o,U:!A+-z'NYEN^2P:.S:a /dev/mouse ^3su^2"`i
   /dev/sysmouse ( 1/2D-DEGN|O sysmouse(4)):

 # cd /dev
 # rm -f mouse
 # ln -s sysmouse mouse

   11.4. .AE^1<<-a-o-ou 1/2u:!A-`a|b X ,I+-"IYENIP:U:!H

   YENiYENH!CCUR-L-^1L>>Yn^3](c)w X client -oYu{|!!C  1/2D-DEGN|O
   Colas Nahaboo -a-o-ooP:
   (http://www.inria.fr/koala/colas/mouse-wheel-scroll/) .

   |p-aGS:An"IYENI imwheel u{|!!A YENun,ouUCURU|C"BAEJS:@S:YYENi!C

    1. A`a'<<-ou 1/2u: event Translate the Wheel Events

       imwheel u{|!-a-o^1BS:@`i^2z!A
       NOTO+-N.AE^1<<-a-o^2A:YEN|Aa:>>P^2A:CURAa:A`a'<<|"<<o:Aa:
       event!C|]NOTDEG|p|^1!A(c)OYENH
       S:AYEN^2P:.AAy.AE^1<<AAXDEGEu{|!+-N.AE
       1/2u:"AEYENoA`a'<<|"^2A:YEN|Aa:>>P^2A:CURAa: event!C
       |^3"a-oO/CURe-akYENiYENH^1F"`iYENO/-a-o!ACUR@NOTOAAy moused(8)
       S:@A`a'<<!ACURGNOTO AAy X YEN>>"YENhS:@ event A`a'<<!C

         a. "IYENI moused(8) "OA`a'<<-ou 1/2u: Event

            nAAy moused(8) "OS:@ event A`a'<<!AYENun|b DEGo|ae
            moused(8) -a-o(c)RYENO|CCURCURYEN[CURW -z 4
            S:YYENi!CA|O"OCURl!A|p-aGS:ACUR@-e^3-L-NOTOYENH moused -p
            /dev/psm0 "ODEG_DEGE moused(8) -a-o,U:!AYENunS:i|" moused
            -p /dev/psm0 -z 4 S:YYENi!C|p-aGS:ANOTO|bP:}
            3/4-:^1Lu{CURCURS:QYENI /etc/rc.conf "ODEG_DEGE
            moused(8)!A S:AYENiYENH|b /etc/rc.conf CURCUR+-N
            moused_flags CURWYEN[ -z 4 S:YYENi!C

            S:A^2{|b>>YnAAy X -a
            3/4^1DS:A-a-o.AE^1<<|^3CURO<<o:Aa:!AYENun|b
            /etc/XF86Config CURCUR-a-o !S:Pointer!"
            DEGIP:oCURCURYEN[CURW Buttons 5 ^3oCUR@|aeS:YYENi!C"O|p!A
            S:AYENi-`a|b /etc/XF86Config CURCUR|^3 YENHCURU-a-o
            !S:Pointer!" DEGIP:o!G

            Example 11-1. |b XFree86 3.3.x "t|C-a-o XF86Config
            ^3](c)wAE-a-o !S:Pointer!" DEGIP:oCURCUR!AYENH moused
            S:@A`a'<< -a-o-ou 1/2u:^1<<-a-o^3](c)w 1/2d"O

 Section "Pointer"
    Protocol        "SysMouse"
    Device          "/dev/sysmouse"
    Buttons         5
 EndSection

            Example 11-2. |b XFree86 4.x "t|C-a-o XF86Config
            ^3](c)wAE-a-o !S:InputDevice!" DEGIP:oCURCUR!AYENH X
            Server S:@A`a'<< -a-o-ou 1/2u:^1<<-a-o^3](c)w 1/2d"O

 Section "InputDevice"
    Identifier      "Mouse1"
    Driver          "mouse"
    Option          "Protocol" "auto"
    Option          "Device" "/dev/sysmouse"
    Option          "Buttons" "5"
 EndSection

            Example 11-3. |b !S:.emacs!" CURCUR!A^3](c)w-ou
            1/2u:^1<<-a-o`iYENI P:+--ouDEGECURa:'(c) 1/2d"O

 ;; wheel mouse
 (global-set-key [mouse-4] 'scroll-down)
 (global-set-key [mouse-5] 'scroll-up)

         b. S:QYENIS:A-a-o X Server "OS:@-ou 1/2u: Event A`a'<<

            |p-aGS:A"S|^3DEGo|ae
            moused(8)!A(c)INOTOS:ACUR-L-.QS:QYENI moused(8)
            YENhS:@-ou 1/2u: event A`a'<<!AS:AYENiYENHS:iYENI X
            server "OS:@^3o 1/4E-a-o event A`a'<<!CS:A+-o|b
            /etc/XF86Config AE(R) *CURCURS:@'XOS:oDEGE!C^2A:CUR@!A
            S:AnNOTDEGS:A-a-o.AE^1<<?i 3/4U:
            3/4A.i-a-o^3qDEGT"o(c)w!CCURj|h 1/4AE-a-o-ou
            1/2u:^1<<^3-L- "IYENI !S:IntelliMouse!" "o(c)w!ACUR-L-^1L
            XFree86
            CUR]CURa:'(c)"a:YEN|-a-o^3qDEGT"o(c)w!A"O|pA^1S:TH-a-o
            MouseMan+ .AE^1<<(c)OYENI-a-o
            !S:MouseManPlusPS/2!"!C.iS:A?i|nCURS:<<a!AYENun
            YEN[P:iCUR@|ae !S:Pointer!" DEGIP:o-a-o Protocol AAU:
            1/4AES:YYENi!C

            ^2A:CURG!AS:AnS:iP:D X server
            +-N+-^2DEGE"AEYENo<<.s^1iNOTM|U:.AE^1<<-a-o
            ^2A:YEN|(c)M^2A:CURAa:!C^3oYENiYENHS:QYENI ZAxisMapping
            ?iP:u?`i"`i!C

            A|O"OCURl!A|p-aGS:A"S|^3"IYENI moused(8)!A|OS:A|^3CUR@O
            IntelliMouse |w,E|b PS/2
            .AE^1<<DEGd--a-o,U:!AS:AYENiYENH|b /etc/XF86Config
            ,I"IYENIYENHCURU-a-o^3](c)w!C

            Example 11-4. |b XF86Config ^3](c)wAE-a-o !S:Pointer!"
            DEGIP:oCURCUR!AYENH X Server S:@A`a'<<-a-o-ou
            1/2u:^1<<-a-o^3](c)w 1/2d"O

 Section "Pointer"
    Protocol        "IntelliMouse"
    Device          "/dev/psm0"
    ZAxisMapping    4 5
 EndSection

            Example 11-5. |b XFree86 4.x "t|C-a-o XF86Config
            ^3](c)wAE-a-o !S:InputDevice!" DEGIP:oCURCUR!AYENH X
            Server S:@A`a'<< -a-o-ou 1/2u:^1<<-a-o^3](c)w 1/2d"O

 Section "InputDevice"
    Identifier      "Mouse1"
    Driver          "mouse"
    Option          "Protocol" "auto"
    Option          "Device" "/dev/psm0"
    Option          "ZAxisMapping" "4 5"
 EndSection

            Example 11-6. |b !S:.emacs!" CURCUR!A^3](c)w-ou
            1/2u:^1<<-a-o`iYENI P:+--ouDEGECURa:'(c) 1/2d"O

 ;; wheel mouse
 (global-set-key [mouse-4] 'scroll-down)
 (global-set-key [mouse-5] 'scroll-up)

    2. |w,E imwheel

       +-uCURU"O!A+-q Ports ,I|w,E imwheel !C|b x11
       AthS:O,IYENiYENHS:a:"`iYEN|!AYEN|YENiYENH+-N -ou 1/2u: event
       ^1iNOTM"`iAa: 1/2L event!CA|O"OCURl!AYEN|YENiYENH|bS:A +-N-ou
       1/2u:(c)^1<<e+-A(R)E!ADEGeYENXCUR@O Page Up
       "`iS:A-a-oA^3YENIu{|!YENh!CImwheel
       S:QYENICUR@O^3](c)wAE!AYENH<<K^1iA^3-ou 1/2u: event |U:Aa:
       1/2L event!A^3o 1/4E
       YEN|'NYENiYENH|bCUR-L-|P-a-oA^3YENIu{|!CURCUR!ADEGeYENXCUR-L-|P-a-oAa:
       1/2L<<o:Aa:!C^1w^3]-a-o imwheel ^3](c)wAENOTO|b
       /usr/X11R6/etc/imwheelrc!A|p-aGS:A.Q 
       1/2s?e|Uq-a-o^3](c)wAE-a-o,U:!AYENiYENH+-NYEN| 1/2AE>>s"`i
       ~/.imwheelrc!AuM<<a"IS:A-a-o>>Yn *S:iYEN|!C
       ^3](c)wAE-a-o(R)ae|!|b imwheel(1) ,I+-|^3,O^2O-a-o>>!(c)u!C

    3. ^3](c)w Emacs >>P Imwheel "o|PCURuS:@ (?i 3/4U:(c)E)

       |p-aGS:A"IYENI emacs (c)INOTO Xemacs
       -a-o,U:!A"-oS:A>>Yn|bS:A-a-o ~/.emacs AE(R)
       *,IYEN[CURWCUR@CURpNOTq^3](c)w!C emacs 
       1/2D-YEN[CURW^3oCUR@NOTq!G

       Example 11-7. Imwheel -a-o Emacs ^3](c)w

 ;;; 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

       Xemacs <<h|b ~/.emacs AE,IYEN[CURW^3oCUR@NOTq!G

       Example 11-8. Imwheel -a-o Xemacs ^3](c)w

 ;;; 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

    4. DEGo|ae Imwheel

       |w,ECURS:<<a!AS:AYENiYENH-a 1/2+-u|b xterm ,IAa:CURJ imwheel
       (c)RYENOYENHDEG_DEGEYEN|!CYEN|.|YENHI'-oDEGo|ae!A"AYENBDEG"CURWuo'S:(R)A:YENI!C
       |p-aGS:A 1/2T(c)wn-a 1/2+-u"IYENI imwheel!A
       YENunS:aYEN|YEN[P:iS:A|UCURv-a-o .xinitrc (c)I .xsession
       CUR-oAE(R) *S:YYENi!CS:AYENiYENHCUR-L--oTH imwheel
       (c)ODEGeYENX"O|^3Ao: PID AE(R) * A:uS:i!C"-o"C,A:uS:iYENu^1i
       Linux -a(c)-a-o imwheel |^3(R)A:|OCURw!C

   11.5. NOTDEGCURDEG>>o X Window
   -a-o?i^3ae(c)M^1i,U:(R)O/CUR-L--`aYEN?+-`^1BS:@!H

   S:a Num Lock Ao:+- 1/4,O,O!C

   |p-aG+-z-a-o Num Lock |bP:}
   3/4-:(R)E-a-o^1w^3]ENOTOP:}uU-a-o,U:!A+-zYEN^2P:.S:aCURU|C
   ^3o|ae(c)n"`i XF86Config ^3](c)wAECURCUR-a-o Keyboard ^3!YEN-:!C

 # Let the server do the NumLock processing.  This should only be
 # required when using pre-R6 clients
     ServerNumLock

   11.6. CURDEG>>oNOTO virtual
   console!HS:Un<<c,>>oDEGuCUR~-`aYENI|hCUR@AI!H

   A^2^3ae"O>>!!Avirtual console
   'NNOTOYENiYENHAAy+-zCUR-L-YEN^2DEGuCURO|h 1/2AEAo/-a-o^3](c)w
   |p"IYENI-oo,o(c)IDEGo|ae X !A|O|b|PCUR@>>O 3/4-:
   3/4^1CURW|P(R)EDEGu|n'XYENo"AE-a-oCURe-ak!C

   .i+-ODEGE"t^2I"AAAaYENU:S:^1(c)O|^3P:}
   3/4-:DEGT(R)S:CURS:<<a!A+-z'N.||b?A^1oCURWNOTY"`iCUR@O login
   -a-o'-L-YENU:^2AA,^1!C|b^3oO(R)EO+-z'NYENiYENH?eCURJ+-z-a-o login
   name YENHCURI password !AuM<<a'NYENiYENH|b^2A:CUR@O virtual
   console CURWP:}(c)lCURuS:@CURF ((c)I-aIP:}(c)l-a+-!I) !C

   |bNOTY"C,+-!-apCURU!A+-zYENi-`a.|.QnS:@"a:YENL-a-oCURuS:@!A"O|p>>!NOTONOTYNOTY+-zYEN?|b
   DEGo|ae-a-ou{|!-a-o>>!(c)uCURaaYENo!A(c)INOTO.i+-z|b FTP
   P:C,?e-a-ouYEN<<Y(R)EP:!CURCURNOTYNOTY+-z-a-o
   P:lYENo!C+-zYENu>>Yn<<o: Alt-F2 (<<o:|i Alt
   Aa:CUR-L-(c)n!A"A<<o:CURU F2 Aa:) !AuM<<a +-z'N.||b^2A:CURGO
   !S:virtual console!" CURWNOTY"`iCUR@O login
   '-L-YENU:^2AA,^1!I.i+-z.Qn|^"`i`i"O-a-oCURuS:@(R)E!A 1/2D-<<o:
   Alt-F1!C

   FreeBSD |b|w,E(R)E-a-o^1w^3]ENOTO"IYENICURTO virtual console
   (3.3-RELEASE <<aNOTDEGCURKO)!A+-zYENiYENHYENI
   Alt-F1!AAlt-F2!AYENHCURI Alt-F3 |bYEN|ICURS:P:!DEGuCURA'<<!C

   |p-aG+-z.Qn|hCUR@AI virtual console -a-o,U:!A+-zYENu>>Yn 1/2s?e
   /etc/ttys ^3oOAE ( 1/2D-DEGN|O ttys(5))!A |b !S:Virtual
   terminals!" ^3oOuu,N<<a+-YEN[CURJ ttyv4 "`i ttyvc -a-oA:ae|`i!G

 # 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

   +-z.QYENI'XO'N^3]'XO!C+-z^3]P:V|h virtual terminal !AYEN|I'NYENI+-
   1/4 P:V|h"t^2I,e. 1/2!F|p-aG+-zYENu|^3CUR-L-"`i 8MB -a-oDEGO
   3/4D-AAe-a-o,U:!A^3o 1/4vAAT'NCURjCURF!C +-zYENi-`aCUR].|.QS:a
   secure '<<|" insecure!C

     Important: |p-aG+-z.QnDEGo|ae X -a-o,U:!A+-z YEN^2P:.
     NOTDEGYEN|<<O-d ((c)IAo:+- 1/4) |U:CURO:CUR@O virtual terminal
     !C^3o'NNOTO>>!!A|p-aG +-z.Q|b<<o:CURQCURGO Alt
     YEN\-`aAa:(R)E^3-L-|^3 login
     '-L-YENU:^2AA,^1!A|OYENBCURS|b|PCUR@ ^3!^1q,-L-CURWCUR].QDEGo|ae
     X -a-o,U:!A"-o>>o^3o-uNOTOCUROCUR-L-(c)-CURF -
     +-zYENu-`aYENICURQCUR@O!C

   "u(R)o/CUR@O console ^3IA^2^3ae-a-oCURe-ak'NNOTOS:aYEN|Ao:+-
   1/4!CA|"O"O>>!!A|p-aG +-z^1^3CURW+-A?-a-oCUR@
   1/4E^3](c)wCURFYENth^3!-a-o 12 O terminal "AYENB.QnDEGo|ae X !A
   +-zYEN^2>>YS:a virtual terminal 12 +-q!G

 ttyvb   "/usr/libexec/getty Pc"         cons25  on  secure

   ^3]|"!G

 ttyvb   "/usr/libexec/getty Pc"         cons25  off secure

   |p-aG+-z-a-oAa: 1/2LYENu|^3 10 OYEN\-`aAa:-a-o,U:!A+-z'NnS:i|"^3o
   1/4E!G

 ttyv9   "/usr/libexec/getty Pc"         cons25  off secure
 ttyva   "/usr/libexec/getty Pc"         cons25  off secure
 ttyvb   "/usr/libexec/getty Pc"         cons25  off secure

   (+-zCUR]YENiYENH-a 1/2+-uS:a^3o'X|aeNOTaa+- 1/4!C)

   CUR@YEN^1+-zS:iCURF /etc/ttys!ACURUCUR@O"BAEJ'NNOTOn 
   1/2T(c)w+-z|^3"NOTDEG-:-a-o virtual terminal
   ,E,m!C^3IA^2^3ae-a-oCURe-ak'NNOTO!G

 # cd /dev
 # sh MAKEDEV vty12

   |A^1L"O!A.Qn+-ODEGE^3o"C, virtual console ^3IA^2^3ae
   (CUR]NOTO^3IDEG(R)^2b) -a-oDEGu-ak'NNOTO<<P:}
   3/4-:!CuM<<a!A|p-aG+-zCUR-L-.Q<<P:} 3/4-:-a-o,U:!A+-zYENiYENHS:a X
   Window Ao:+- 1/4!AuM<<aYENI root -a-o"YEN-:DEGo|aeCURU|C<<u:YENO!G

 # kill -HUP 1

   .i+-zDEGo|ae^3oO(c)RYENO<<e!A+-zCUR@(c)wnS:^1YENthS:a X Window
   Ao:+- 1/4!C|p-aG
   +-zCUR-L-^3o>>oDEGu-a-o,U:!A+-z-a-o"t^2IYENi-`a.||b+-zDEGo|ae kill
   (c)RYENO<<aYENX^2{.i+- 1/4(c)I Ae|-o-a-o+-!-ap!C

   11.7. S:Un<<c,>>o+-q X CURA'<<"`i virtual console!H

   1/2D-YENI Ctrl+Alt+Fn YENHCURA|^|U: virtual console!C Ctrl+Alt+F1
   YENiYENHCURA|^|U:^2A:CUR@O virtual console!C

   .iS:ACURA|^|U:CURaa|r console <<a!AS:A'NYENiYENH"IYENICUR@-e
   Alt+Fn <<o:Aa:^2O|X!A|b|U console CURS:P:!CURA'<<!C

   n|^"`i X -a-o,U:!AS:AYEN^2P:.CURA|^|U:DEGo|ae X -a-o virtual
   console!C |p-aGS:ANOTO+-q(c)RYENO|C,IDEG_DEGE X -a-o,U:
   ("O|p"IYENI startx <<u:YENO)!A"-o>>o X .|"I-ath|bCURUCUR@OYEN
   1/4"IYENI-a-o virtual console!A|OCUR-L-NOTOYEN|^3Q
   DEG_DEGE-a-oCURaa|r console!C|p-aGS:A|^3CURKO"IYENICURCUR-a-o
   virtual terminal!A"-o>>o X
   'N.||b^2A:CUREOCURWDEGo|ae!AS:A'NYENiYENH"IYENI Alt+F9
   YENH-ad-|^|U: X CURCUR!C

   11.8. S:Un<<c,>>oDEGuCUR~-`a|bP:} 3/4-:(R)E+-ODEGE XDM!H

   |^3"a-oO/CURe-akYENiYENH+-ODEGE xdm!CCUR@-oO/CURe-akNOTO+-q
   /etc/ttys "O+-ODEGE!A YENiYENHDEGN|O ttys(5)
   >>!(c)uCURaaYENoCURCUR-a-o 1/2d"O!FYENtCUR@-oO/CURe-akNOTO|b
   rc.local ( 1/2D-DEGN|O rc(8)) DEGo|ae xdm!A(c)INOTO |b
   /usr/local/etc/rc.d (c)nCUR@O
   X.sh!C^3o"a-oO/CURe-ak^3-L-NOTO|X-ak-a-o!A|p-aG+-z,ONOTYCUR@-oO/
   CURe-akuL(R)A:-a-o,U:!A+-zYENiYENH,O,OYENtYEN~CUR@-oO/!C^3o"a-oO/CURe-ak-a-ou^2-aGNOTOCUR@
   1/4E-a-o!GX .|AAaYENU:CUR@O^1IS:ICURAE-a-o login: '-L-YENU:!C

   YENI ttys -a-oCURe-ak-a-oAuAI!A|b(c)o<<u:(c)uCURF X
   |b+-ODEGE(R)E"`i(c)^3NOTOYENI"-oO vty!A "AYENB+-N logout
   (R)E<<.s+-ODEGE X server -a-o^3dYENoYENau^1 init!C rc.local
   -a-oCURe-ak<<hNOTO|b.i+-ODEGE X
   YENXCURFDEGYAD(R)E!AYENiYENH<<U:>>'AP|aS:a xdm +-th+- 1/4"O,N"M
   DEGYAD!C

   |p-aGNOTOYENI rc.local -a-oCURe-ak!A|bDEGo|ae xdm
   (R)E+-zCUR-L--`aYEN[YENo|oDEGN 1/4AE!]CUR]'NNOTOP:]|"
   daemon!^!CYEN^2P:.|b getty DEGo|ae<<a CUR~-`a+-ODEGE xdm!AS:_<<h
   getty (c)M xdm .|CURNOTNOTU 1/2A:NOTd-|OAe|i console!C^3I|n-a-o
   CURe|!NOTO|b script CURCURYEN[O sleep!AAAyYEN| 1/4EDEG+- 10
   NOTiA:AYEN-aYENk!A+-uuUCUR~DEGo|ae xdm!C

   |p-aGS:ANOTO+-q /etc/ttys +-ODEGE xdm!Axdm >>P getty(8) CUR'|^3
   3/4-:.|CURNOTNOTU 1/2A:NOTd-!CCUR@OA *S:KYEN|-a-oCURe-ak!A'NNOTO|b
   /usr/X11R6/lib/X11/xdm/Xservers AE(R) *CURCURYEN[CURJ vt 
   1/4AE|r!C

 :0 local /usr/X11R6/bin/X vt4

   CURW+--a-o"OCURlCURCUR!A.|<<u:YENU: X server |b /dev/ttyv3
   CURCURDEGo|ae!C 1/2D--a`.N 1/4AE|rNOTO(R)tCUR@-a-o!CX server
   +-qCUR@P:}(c)l 1/4AE vty!A|O FreeBSD
   (R)O:CURss<<hNOTO+-q^1sP:}(c)l 1/4AE vty -a-o!C

   11.9. NOTDEGCURDEG>>o.iS:UDEGo|ae xconsole (R)E!AuoYENICURF
   !S:Couldn't open console!" -a-o?u>>~!H

   |p-aGS:ANOTOYENI startx "O+-ODEGE startx -a-o,U:!A/dev/console
   -a-oAAv"A CUR-L-.| S:iAAU:!Au^2-aG'NNOTO xterm -C (c)M xconsole
   ^3oAth-a-ou{|!uL-ak YEN?+-`DEGo|ae!C

   ^3oCUR@CURA-a-oDEGYAD!A^3-L-NOTO|]NOTDEG console
   -a-oAAvNOTO+-A:YENI"t^2I^1w^3]E!C
   |bCUR@O|h"IYENI-aI-a-o"t^2I,I!AS:UICUR-L-S:AE+-ae"CO"IYENI-aI^3-L-YENiYENH-a
   1/2+-u 1/4gCURJ"t^2I console !C|p-aG"IYENI-aINOTO+-q 3/4-:
   3/4^1-a-o VTY -a 1/2+-u login -a-o,U:!A"-o>>o fbtab(5)
   YENiYENH,N"M^3oAth-a-oDEGYAD!C

   A^2^3ae|a>>!!A 1/2D- 1/2T<<O /etc/fbtab ( 1/2D-DEGN|O fbtab(5))
   ^3oOAE(R) *CURCUR-a-o^3oCUR@|ae"S|^3^3Quu,N+- 1/4!G

 /dev/ttyv0 0600 /dev/console

   ^3oCUR@|ae^3](c)w-a-o|s|bYENiYENH 1/2T<<O+-q /dev/ttyv0
   unCURJ-a-o"IYENI-aIYENiYENH+-+-"i console!C

   11.10. YENH<<eS:UYENiYENHYENHCUR@-e"IYENI-aIDEGo|ae
   XFree86!ANOTDEGCURDEG>>o^2{|bYEN|>>!S:UCUR@(c)wn YENH root
   CUR~-`aDEGo|ae!H

   (c)O|^3-a-o X server ^3-L->>YnYENH root "ODEGo|ae!A CUR~-`a-a
   1/2+-u|s"uS:A-a-ouo/DEGTuwAAe!CAA-a(c)YEN>>-a-o XFree86 (<= 3.3.6)
   .||UDEGE +-N(c)O-ath-a-o server YENHS:QYENI root
   "YEN-:DEGo|ae-a-oCURe|! |w,EDEG_"O (setuid NOTDEG root)!CYENN(c)o
   X server ^3-L-NOTOAAe?nAeCURjCURS
   1/2AEAo/-a-ou{|!!AAAa|O(c)o:"-L-|a!A^3oNOTOCUR@O|wYENthCURW-a-o"aAo/!C
   |]NOTDEG^3oO`i|]!A.s-a(c)-a-o XFree86 'NCUR-L-+-N^3o"C, server
   YENH setuid NOTDEG root -a-oCURe|!|w,E!C

   <<U:(c)uAAa|a!AS:UIS:^1YENthuL-ak+-u"u:+-N X server YENH root
   -a-o"YEN-:DEGo|ae!CDEG_ 1/2X'N|wYENthCURWCUR-L-NOTOO|nYEND.N!C
   |^3"a-oO/CURe-akYENiYENHYENHCUR@-e"IYENI-aI-a-o"YEN-:"IYENI
   X!C^2A:CUR@NOTOS:QYENI xdm (c)INOTO"a:YEN|-a-o display manager
   ("O|p kdm)!F^2A:CURGNOTOS:QYENI Xwrapper!C

   xdm NOTOCUR@O^3B^2z^1IS:INOTE+-unCURJ-a-o daemon!C YEN|^3q+-`|bP:}
   3/4-:(R)EDEGo|aeDEG_"O!A|OYENBt^3d^1i"IYENI-aIS:@"YEN-:>>{AO!AYENHCURIDEG_DEGE
   "IYENI-aI-a-oCURuS:@Ao^1O!FYEN|YENi>>!NOTO^1IS:IAo^1OCURU-a-o
   getty(8) >>P login(1) -a-o^1iA^3u{|!!C.Q+-o-a 3/4S:o|h|^3Ao: xdm
   -a-o,eDEGT!A 1/2D-DEGN|O XFree86 CURaaYENo!AYENHCURI"a: FAQ
   P:uYENO/!C

   Xwrapper NOTO X server -a-oYEN],Eu{|!!FYEN|YENiYENH
   AAyCUR@-e"IYENI-aIYENiYENHCURaDEGEDEG_DEGE X server
   -a-oCURpCURu"a!A|OAU-`a-ou<<uCUR@(c)w-a-o|wYENth
   Ao^1O!CYEN|.|AENOTdP:C,CURJ-a-o(c)RYENO|CDEGN
   1/4AE!A|p-aG"SDEGYAD-a-o,U:!A'NDEG_DEGE 3/4A.i-a-o X
   server!C|p-aGS:A|]NOTDEGNOTY-oO/^2zYENN|OCUR-L-.QDEGo|ae display
   manager -a-o,U:!A
   YEN|NOTONOTDEGS:A|O^3](c)w-a-o!C|p-aGS:A|w,ECURFS:^1 3/4a-a-o
   ports!AS:AYENiYENH|b /usr/ports/x11/wrapper CURCURS:a:"`iYEN|!C

   11.11. S:U-a-o PS/2 .AE^1<<|b X CURCUR|^3AICUR-L-YEN?+-`!H

   +-z-a-o.AE^1<<(c)M+-z-a-o.AE^1<<AAXDEGEu{|!YENi-`a|s|b|^3CUR-L-|P"B-a-o^2{P:H!C

   |b 2.2.5 YENHCURIS:o|-a-o"t^2I,I!A+-q X CURA"`i virtual terminal
   uM<<a
   |ACURA|^"O'NYENiYENH"IYEN|I<<.sDEGu|P"B-a-oDEGES:@!C|p-aG^3oODEGYAD+-`+-`uoYENI-a-o,U:!A
   +-zYENiYENH|b+-z-a-o kernel
   ^3](c)wAECURCURYEN[CURJCURU+-^3oO?iP:uuM<<a<<.s 1/2sA:P:!G

 options PSM_CHECKSYNC

   |p-aG+-z"S|^3<<O/YENss kernel -a-o,gAAc,!A 1/2D-NOTY |Uq(R)O:CURss
   ^3oCUR@,`!C

   YEN[CURW^3oO?iP:uYENH<<a!A.AE^1<<(c)M.AE^1<<AAXDEGEu{|!P:!-a-o|P"BDEGYADA^3,O'NCURn,u
   CUR-L-.|YENX^2{CURF!C|p-aG^3oODEGYADCUR'uM|s|b-a-o,U:!A|b^2
   3/4DEGE.AE^1<<(R)E<<o:<<o:.AE^1<<<<o:Aa:
   YENiYENH"I.AE^1<<(c)M.AE^1<<AAXDEGEu{|!<<.sDEGu|P"B-a-oDEGES:@!C

   ,O-a`.N-a-oNOTO^3oO?iP:u"ACUR-L-NOTO^1i"CCUR@O"t^2I^3-L-|^3(R)A:!AYEN|YENi-`a.|AAy+-u|b
   PS/2 .AE^1<<|`i,m-a-o ALPS GlidePoint ,E,mYEN-c-YENh !S:tap!"
   ^3oP:uYEN\-`a!C

   |b 2.2.6 CURI"a:<<a-a-o-a(c)YEN>>!A|P"B-a-o
   1/2T>>{CURw,g|^3CURF,u|n-a-o,N"M?`i-ak!A
   |OYENB^3o"C,^3-L-CURw,gNOTO PS/2 .AE^1<<AAXDEGEu{|!-a-o
   1/4D-.C,CURF!C^3oOCURe-akCUR]YENiYENH|b GlidePoint
   CURWYEN?+-`CURuS:@!C (|]NOTDEG 1/2T>>{-a-ou{|!
   1/2XCURw,g|"NOTDEGCUR@O 1/4D-.C,YEN\-`a!A
   (c)OYENH|b^3o"C,-a(c)YEN>>CURCURS:UICUR-L-|b'-L-"N PSM_CHECKSYNC
   -a-o?iP:uCURF!C) CUR-L-^1L|b .YENCURO: 1/4AE-a-o(R)
   *"OCURCUR!A^3o"C,AAXDEGEu{|!.|>>~^3o/|P"B(c)E?u>>~!AuM<<a+-z'N.|NOTY"`i
   ^3o 1/4E-a-o(R)O:CURssDEGT(R)S:!G

 psmintr: out of sync (xxxx != yyyy)

   uM<<a+-z'N.|uo^2{+-z-a-o.AE^1<<CUR-L--`aYEN?+-`^1BS:@CURF!C

   |p-aG+-zuoYENICURF^3o 1/4E-a-o-aNOT-ap!A+-zYEN^2P:.AC,YENNS:a PS/2
   .AE^1<<AAXDEGEu{|!-a-o flag ^3]|" 0x100 "OS:a|P"B 1/2T>>{-a-ou{|!
   1/2Xu^1"u(R)o/+- 1/4!CuM<<a|bP:} 3/4-:'-L-YENU:^2AA,^1(R)EYENI -c
   ?iP:u"OP:iCURJ UserConfig!G

 boot: -c

   uM<<a!A|b UserConfig (c)RYENO|CCURCURAa:CURJ!G

 UserConfig> flags psm0 0x100
 UserConfig> quit

   11.12. S:U-a-o PS/2 .AE^1<<CUR-L--`a^3z^1L MouseSystem "O^1BS:@!H

   |^3CUR@"C,^3o/S:i<<u:YENXNOTY"C, 1/4tuP-a-o PS/2 .AE^1<<YENu-`a|b
   !S:DEG-a,N-aR<< *!"
   -aNOT-oACURUCUR~-`a^1BS:@!C|p-aGCUR-L-NOTO-a-o,U:!A.AE^1<<'aa
   1/4D- .|+-`+-`P:]"`i?A^1o-a-oYEN-aCURW"CURYENh!C

   <<D+-`CUR-L-(c)--a-o!A^3oODEGYAD|b 2.0.X (c)M 2.1.X
   CURUNOTOuL,N-a-o!C|b 2.2 "`i 2.2.5 -a(c)!A+-zYENiYENH^1i
   /sys/i386/isa/psm.c "IYENICURU|C patch
   uM<<a<<<<O/+-z-a-o(R)O:CURss!C|p-aG+-z"S|^3<<O/YENss kernel
   -a-o,gAAc,!A  1/2D-NOTY |Uq(R)O:CURss ^3o,`!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 */

   |b 2.2.6 CURIYENH<<a-a-o-a(c)YEN>>!A|b PS/2
   .AE^1<<AAXDEGEu{|!CURCUR^3](c)w 0x04 -a-o flag
   .|S:a.AE^1<<^3]|"DEG-a,N-aR<< * 1/4O|!!C|bP:}
   3/4-:'-L-YENU:^2AA,^1(R)EYENI -c ?iP:u"OP:iCURJ UserConfig!G

 boot: -c

   uM<<a!A|b UserConfig -a-o(c)RYENO|CCURCURAa:CURJ!G

 UserConfig> flags psm0 0x04
 UserConfig> quit

   <<eCUR@,`|^3'-L-"`iYENtCUR@OYENi-`a 3/4EP.AE^1<<DEGYAD-a-o`i|]!C

   11.13. .iS:U<<O/YENss X u{|!(R)E!Aimake >>!YEN|S:a:CUR-L-"`i
   Imake.tmpl!CYEN||bth"`a!H

   Imake.tmpl NOTO Imake (R)MYENo-a-oCUR@^3!YEN-:!AImake NOTO
   1/4D-.C,-a-o<<O/YENss X u{|!-a-oCURu"a!C Imake.tmpl (c)M"a:YENL
   1/4AEO header file CUR@ 1/4ENOTO<<O/YENss X u{|!-a-oYEN^2nAE(R)
   *!A+-zYENiYENH|b X prog distribution
   CURCURS:a:"`iYEN|I!C+-zYENiYENHYENI sysinstall(FreeBSD 5.2
   CURS:<<e-a(c)YEN>><<hNOTO /stand/sysinstall) "O|w,E(c)INOTO-a
   1/2+-u+-q X distribution CURCURCURaDEGE|w,E!C

   11.14. S:U|b build CUR@O X A^3YENIu{|!!AYEN|>>Yn XFree86
   3.3.x!A|yNOTO S:UCURw,g|w,E XFree86 4.x CURF!CS:U,O<<c,>>o?`i!H

   nS:iP:D port |b 1/2sA:P:u{|!(R)E!A"IYENI XFree86 4.x
   "c,|!(R)w!AS:AYENiYENH |b /etc/make.conf ,I (|p-aGS:A"S|^3^3oOAE!A
   1/2D-<<O/YENssYEN|) YEN[CURWCURU+-^3oCUR@|ae!G

 XFREE86_VERSION=        4

   11.15. S:Un<<c,>>oDEGuCUR~-`a^3](c)wYEN-a-oJCURlYENI-a-o.AE^1<<!H

   |b+-z-a-o .xinitrc (c)INOTO .xsession CURCURDEGo|ae xmodmap -e
   "pointer = 3 2 1" -a-o<<u:YENO!C

   11.16. n|p|o|w,E splash
   ^1IS:IAAaYENU:u{|!!H"-o,IYENiYENHS:a:+-o"`i(c)O!H

   'N|buo|ae FreeBSD 3.1 CURS:<<e!AS:UIYEN[P:iCURF|bP:}
   3/4-:(R)EAAaYENU: !S:splash!"
   ^1IS:I-a-o.sYEN\-`a!CYENO/<<eYENI"OAAaYENU:|b?A^1oCURW-a-oAE(R) *
   YEN^2P:.NOTO 256 |a-a-oAI-xDEG}^1IS:I (*.BMP) (c)I ZSoft
   PCX(*.PCX) -a-o(R)ae|!!CDEG-L-|^1CURS:YEN~!A,N-aR<<
   *CUR]YEN^2P:.|b 320x200 YENHCURU!ACUR~-`a(c)M 1/4D-.C, VGA
   AAaYENU:YENd.fDEGt"IYENI!C|p-aG+-z 1/2sA:P: kernel (R)E|^3YEN[CURJ
   VESA CURa:'(c)!A"-o>>o^3ICURj,N-aR<< *YENiYENH"`i 1024x768!C-a`.N
   VESA -a-o CURa:'(c)>>YnYEN[CURJ VM86 ^3oO kernel ?iP:u!CVESA
   CURa:'(c)^1e>>UCURWYENiYENH|b 1/2sA:P: kernel (R)EYEN[CURJ VESA
   ?iP:u!B (c)I,u:CURJ VESA -a-o kld module "O^1F|"!C

   +-zn *S:i+-+-"i FreeBSD P:} 3/4-:"BAEJ-a-o^3](c)wAE!ACUR~-`a"IYENI
   splash AAaYENU:^1IS:I-a-oYEN\-`a!C^3](c)wAE|buo|ae FreeBSD 3.2
   <<e|^3"C,S:oDEGE!A(c)OYENH^2{|b |^3"aOCURe-akYENiYENH,u:CURJ
   splash -a-oYEN\-`a!G

     * FreeBSD 3.1

       YENy?iYENXYENI"OAAaYENU:|b?A^1oCURW-a-o^1IS:I!A3.1
       -a(c)YENuCURa:'(c) Windows
       -a-oAI-xDEG}(R)ae|!!C?i|nCURF+-zn-a-o^1IAE<<a!A+-NYEN|<<th"`i
       /boot/splash.bmp!C+-uuUS:aCURU+-'X|aeYEN[CURJ /boot/loader.rc
       CURCUR!G

 load kernel
 load -t splash_image_data /boot/splash.bmp
 load splash_bmp
 autoboot

     * FreeBSD 3.2+

       DEG-L-CURFYEN[CURJ^1i PCX AE(R) *-a-oCURa:'(c)YEN~!AFreeBSD
       3.2 CUR]S:iP:iCURF P:}
       3/4-:u{S:C,-a-o^3](c)wCURe|!!C|p-aG+-zA:@.N-a-o,U:!AYENiYENHYENICURWz
       FreeBSD 3.1 -a-oCURe-ak!A+-N splash_bmp '<<|" splash_pcx
       "O,u:CURJ PCX AE(R) *S:YYENi!C
       |p-aG.QYENI.s-a-o^3](c)wCURe|!!A+-z-a-o /boot/loader.rc
       YEN^2P:.YEN]NOTA^3o'X|ae!G

 include /boot/loader.4th
 start

       AU>>YnCUR@OYEN]S:tYENHCURU'X|ae-a-o /boot/loader.conf !G

 splash_bmp_load="YES"
 bitmap_load="YES"

       ^3oNOTODEG^2^3]+-zYENI /boot/splash.bmp "O.iS:@ splash
       -a-o?A^1oAAaYENU:!C|p-aG.QYENI PCX -a-oAE(R) *!AS:aYEN|<<th|"
       /boot/splash.pcx!A|pCURWzDEGuYENX
       /boot/loader.rc!A|A+-N^3o'X|aeYEN["`i /boot/loader.conf
       CURCUR!G

 splash_pcx_load="YES"
 bitmap_load="YES"
 bitmap_name="/boot/splash.pcx"

   ^2{|b'NYENu^3NCURU splash YENI"OAAaYENU:-a-o^1IAE!A+-zYENiYENH|b
   http://www.baldwin.cx/splash/ S:a:"`i|U-oO/ 1/4E<<~!C

   11.17. S:U-`a|b X ,I"IYENIAa: 1/2LCURW-a-o Windows (R) P:U:!H

   YENiYENH!CS:A(c)OnS:@-a-o!A'NNOTOS:QYENI xmodmap(1)
   YENh(c)w,qS:A.Q"IYENI -a-oYEN\-`a!C

   DEG^2^3](c)O|^3-a-o !S:Windows!" ^3-L-NOTO 1/4D-.C,-a-o!A
   "-oYEN|I-a-o keycode CURAS:ONOTDEG!G

     * 115 - Windows Aa:!A |bYEN-aCURa-a-o Ctrl >>P Alt Aa:CURS:P:!

     * 116 - Windows Aa:!A |b Alt-Gr Aa:YENkAa:

     * 117 - ?i^3aeAa:!AYENkCURa-a-o Ctrl Aa:YEN-aAa:

   nAAyYEN-aAa:-a-o Windows Aa:|LYENXCUR@O^3rAI!A,O,O^3oO!G

 # xmodmap -e "keycode 115 = comma"

   S:AYENi-`an<<P:]S:A-a-o windows manager!ACUR~.||^3DEGES:@!C

   nAAy Windows Aa: -a-o^1iNOTM|b"C|, X
   DEG_DEGE(R)E|UDEGE^3](c)w|n!AS:AYENiYENH|bS:A-a-o ~/.xinitrc
   ,IYEN[CURW xmodmap!A (c)INOTO^3I|n<<O/YENssCUR@O ~/.xmodmaprc
   AE(R) *!A,I+- "CCUR@|ae'NNOTOCUR@O xmodmap
   -a-o?iP:u!AuM<<a|bS:A-a-o ~/.xinitrc ,IYEN[CURW!G

 xmodmap $HOME/.xmodmaprc

   ^3oCUR@|ae!C

   "O|p!AS:A.Qn+-N^3oCURTOAa:|U^1iNOTM"`i F13!BF14 (c)M
   F15!C^3oAAyS:A-`a |bS:A-a-ou{|!(c)INOTO window manager
   CUR-o+-N"a:^1iA^3"`i<<KS:Q-a-oYEN\-`aCURW!AuYENCUR@CURU
   S:UI.|YENU: 1/2d!C

   S:a^3o"C,(c)nP:i ~/.xmodmaprc ,I!G

 keycode 115 = F13
 keycode 116 = F14
 keycode 117 = F15

   DEG^2|pS:AYENI fvwm2 -a-o,U:!AS:AYENiYENHS:@^3o 1/4E-a-o^1iNOTM!A
   AAy F13 -`aDEG-:AAy'aa 1/4D-(c)O|b-a-ouo/u!AY|"CURp^1IYENU:
   ((c)INOTOCURI^1L"O)!CF14 AAy'aa 1/4D- (c)O|b-a-ouo/u!AAU:|"^3ICURW
   1/4h-a-ouo/u!!A(c)INOTODEGh"`iCURU 1/4hYENh
   (|p-aGYEN|CURw,gNOTO^3ICURW 1/4h CURF-a-o,U:)!CF15 <<h+-N
   Workplace (application) ?i^3aeYENsYENX"O!AS:Y"I'aa 1/4D-
   CUR-L-|b(R)`a+-CURW!C.iS:A"S|^3YENi"-L--a-o(R)`a+-DEGIDEG`i(R)E!A^3oOYEN\-`a'NNOTU.i|aCURe<<K
   (|OYENB <<o:Aa:CURW-a-o^1I(R) *(c)M^3oOYEN\-`aNOTUS:k|X)!C

   YENHCURU-a-o ~/.fvwmrc ^3](c)wYENiS:@YENX<<ez-a-oYEN\-`a!C

 Key F13        FTIWS    A        Iconify
 Key F14        FTIWS    A        RaiseLower
 Key F15        A        A        Menu Workplace Nop

   11.18. S:Un<<c,>>o 1/4ECUR~-`a+-o"`i OpenGL -a-o 3D
   uwAAeYEN[^3tYEN\-`a!H

   3D YEN[^3tYEN\-`a-a-o|^3uL!Auo/S:A(c)O"IYENI-a-o XFree86
   -a(c)YEN>>>>PAAaYENU:'^1CURu -a-o<<NOT,^1|O(c)w!C|p-aGS:A-a-oNOTO
   NVIDIA '^1CURu-a-o,U:!A 1/2D-YENh FreeBSD NVIDIA Driver Initiative
   -ooP:NOTYNOTY!A"-o,I|^3|b XFree86-4 CURW"IYENI NVIDIA '^1CURu-a-o
   3D YEN[^3tYEN\-`a-a-oDEGQ 1/2 *!CXFree86-4
   CURW-a-o"a:YEN|AAaYENU:YENd 1/4tuP uwAAeYEN[^3tYEN\-`a-a-o,eDEGT!A
   YEN]NOTA Matrox G200/G400, ATI Rage 128/Radeon, 3dfx Voodoo 3, 4,
   5, YENHCURI Banshee!AYENi|b XFree86-4 Direct Rendering on FreeBSD
   -ooP:CURWS:a:"`i!CXFree 3.3 -a-o "IYENI-aIYENiYENH"IYENI Utah-GLX
   port!AYEN|YENiYENH|b graphics/utah-glx S:a:"`i!C
   "IYENIYEN|YENiYENH|b Matrox Gx00, ATI Rage Pro, SiS 6326, i810,
   Savage, YENHCURIAA-a-o NVIDIA CURW+-o"`i|^3-a-o OpenGL YEN[^3t!C

     --------------------------------------------------------------

                         Chapter 12 Networking

   Biing Jong Lin

   12.1. S:UA^3,O"`ithAa:S:a:|^3Ao:uL-oI-oD-P:} 3/4-: !S:diskless
   booting!" -a-o,e(R)AE!H

   12.2. FreeBSD -a-oYEND 3/4-:YENiYENH.iS:@NOTYO-oo,oCURW-a-o,oYENN
   3/4^1(router)P:U:!H

   12.3. S:UYENiYENH^3z^1L FreeBSD +-NS:U-a-o Win95  3/4-:
   3/4^1^3sCURW Internet P:U:!H

   12.4. FreeBSD CURa:'(c) SLIP (c)M PPP P:U:!H

   12.5. FreeBSD CURa:'(c) NAT (c)I Masquerading P:U:!H

   12.6. S:U|p|o+-N"aYENx FreeBSD YEND 3/4-:YENIYEN|aeDEGd- (parallel
   line) ^3z^1L PLIP ^3s 1/2u!H

   12.7. S:U"S|^3?`i-ak<<O/YENss /dev/ed0 ^3oO device!A
   NOTDEGCURDEG>>o!H

   12.8. S:U|p|o<<O/YENss Ethernet aliases!H

   12.9. S:U|p|o<<u:(c)wS:U-a-o 3C503 "IYENI"a:YENLCUR-L-|P-a-o-a-o
   network port!H

   12.10. NOTDEGCURDEG>>oS:U|b"IYENI FreeBSD -a-o NFS
   (R)EYENX^2{DEGYAD!H

   12.11. NOTDEGCURDEG>>oS:UCUR-L--`a NFS-mount Linux -a-o 3/4-:
   3/4^1!H

   12.12. NOTDEGCURDEG>>oS:UCUR-L--`a NFS-mount Sun -a-o 3/4-:
   3/4^1!H

   12.13. NOTDEGCURDEG>>o mountd CUR@-a 1/2DEGYENs>>! !S:can't change
   attributes!" |OYENBS:UCUR@-a 1/2NOTY"`i !S:bad exports list!"
   ^3oODEGT(R)S:|bS:U-a-o FreeBSD NFS |o/-aA 3/4^1CURW!H

   12.14. NOTDEGCURDEG>>oS:U|b"IYENI PPP ^3s 1/2u"`i NeXTStep  3/4-:
   3/4^1(R)E|^3DEGYAD!H

   12.15. S:Un<<c, 1/4ECUR~-`aS:a IP multicast support YEN'P:}!H

   12.16. th"C,-oo,oYENdNOTO"IYENI DEC PCI chipset!H

   12.17. NOTDEGCURDEG>>onYENI FQDN CUR~-`a^3s"`i"a:YENL 3/4-:
   3/4^1!H

   12.18. NOTDEGCURDEG>>oS:U|b^3s 1/2u(R)ECUR@-a 1/2YENX^2{
   !S:Permission denied!" -a-o?u>>~DEGT(R)S:!H

   12.19. IPFW .|^3y|"|hCURj-a-o-oo,o(c)u?d-!H

   12.20. NOTDEGCURDEG>>oS:U-a-o ipfw !S:fwd!" redirect
   ^3W<<h+-N-aADEGEA`a|V"a:YENL 3/4-: 3/4^1(R)EuL-akYEN?+-`^1BS:@!H

   12.21. n|p|oS:a^1iNOTYYENx 3/4-: 3/4^1-a-o-oo,o-aADEGEn"D(service
   request)A`a|V"`iYENtCUR@YENx!H

   12.22. "-o,IYENiYENHS:a:"`i-oTH^2zAW 1/4e-a-oCURu"a!H

   12.23. <<c,>>o.|P:]YENX !S:/dev/bpf0: device not
   configured!"^3oODEGT(R)S:!H

   12.24. S:Un<<c, 1/4ECUR~-`a+-N Windows  3/4-:
   3/4^1CURCUR-a-o-oI-oD-+- 3/4CURJ"t^2I, 'N^1^3 Linux '-L-"N -a-o
   smbmount "-o 1/4E!H

   12.25. S:U|b"t^2ICURe>>xCURCURuo^2{YENHCURUDEGT(R)S:!G
   !S:icmp-response bandwidth limit 300/200 pps!"!A^3oNOTO  1/2
   1/4|I,J?|!H

   12.26. ^3oO?u>>~DEGT(R)S: !S:arp: unknown hardware address
   format!" NOTOCURDEG>>o.N<<a:!H

   12.27. S:Uee,E|n CVSup
   (R)MYENo!A|yNOTO|b^1A,ODEGo|ae(R)EuoYENICURF?u>>~!An<<c,>>o?`i!H

   12.1. S:UA^3,O"`ithAa:S:a:|^3Ao:uL-oI-oD-P:} 3/4-: !S:diskless
   booting!" -a-o,e(R)AE!H

   !S:Diskless booting!" 'NNOTOAAy FreeBSD YEND 3/4-:+-q-oo,o CURWP:}
   3/4-:!A"AYENB+-q-oo,oCURW-a-o server
   CURWAA-a"u"a:YENLYEN^2n-a-oAE(R) *!A|O<<DYENNYEND 3/4-:
   -a-ouw-oD-CURW"u+-o^3o"C,AE(R) *!C,O^2O-a-o,e(R)AEYENiYENHDEGN|O
   FreeBSD CURaYENU-a-ouL-oI-oD-P:} 3/4-: 1/2g !C

   12.2. FreeBSD -a-oYEND 3/4-:YENiYENH.iS:@NOTYO-oo,oCURW-a-o,oYENN
   3/4^1(router)P:U:!H

   NOTO-a-o!C 1/2D-DEGN|O FreeBSD CURaYENU-a-o-oo,oP:iP:YEN 1/2g
   advanced networking!ACUR *"a:NOTO,oYENN>>P^1h^1D 3/4^1 routing and
   gateways-a-o^3!CURA!C

   12.3. S:UYENiYENH^3z^1L FreeBSD +-NS:U-a-o Win95  3/4-:
   3/4^1^3sCURW Internet P:U:!H

   DEGoYEN>>CURW!A.|DEGY^3o-oO/DEGYAD-a-oCURH|b(R)a,I|U:CURO:|^3"aYENx^1q,-L-!ACUR@YENxP:]
   FreeBSD YENtYEN~CUR@YENxP:] Win95!F^3oO.Q-akNOTO+-N FreeBSD YEND
   3/4-:^3sCURW Internet!AuM<<a^3z ^1L^3oYENx FreeBSD YEND
   3/4-:!AAAyP:] Win95
   -a-o^1q,-L--`aDEG-:CURW-oo!C^3oODEGYAD-oaNOTO<<eCUR@
   ODEGYAD-a-oCUR@O-S"O

   ... u-a(R) *NOTO!GYENiYENH-a-o!I|b FreeBSD 3.x
   -a(c)CURCUR!A"IYENI-aI 1/4O|!(user-mode)-a-o ppp(8) YEN]S:tCURF
   -nat ?iP:u!C|p-aGS:A|b /etc/rc.conf "IYENI-nat?iP:u"A ^3](c)w
   gateway_enable NOTDEG YES !AYENH^3o-oO/^3](c)w+-ODEGE ppp(8)
   !A"AYENBYEN? 1/2T-a-o^3](c)wS:A-a-o Windows YEND 3/4-:-a-o
   ,U:!A^3oODEGu-akA^3,ONOTOYENiYENHYEN?+-`"IYENI-a-o!C

   Ao:(c)oYEN>>YENDADS:o,O^2O-a-o,e(R)AEYENiYENHDEGN|O Steve Sims
   (c)O 1/4P: 1/4g-a-o Pedantic PPP Primer CUR@CURaa!C

   |p-aGS:A"IYENI-a-oNOTO(R)O:CURss 1/4O|! (kernel-mode)
   PPP!A(c)I-aIS:A|^3DEGIDEG`i^3s 1/2u (Ethernet connection)
   YENi^3q^1F Internet -a-o,U:!AS:A+-N>>Yn"IYENI natd(8)!C 1/2D-NOTd
   3/4\ FAQ CURCURAo:(c)o natd -a-o^3!CURA!C

   12.4. FreeBSD CURa:'(c) SLIP (c)M PPP P:U:!H

   NOTO-a-o!CS:AYENiYENHNOTdNOTd man pages CURCURAo:(c)o
   slattach(8)!A sliplogin(8)!Appp(8)!AYENHCURI pppd(8) -a-o^3!CURA!C
   ppp(8) CURI pppd(8) '-L-"NP:iYENXAu|V^3s
   1/2u-a-oCURa:'(c)!AYENtYEN~ sliplogin(8) +-M-au'-L-"NP:iCURJ^3s
   1/2u-a-oCURa:'(c)!A|O slattach(8) +-M-au'-L-"N|VYEN~^3s
   1/2u-a-oCURa:'(c)!C

   |p-aGS:A>>YnS:oP:iCUR@"B-a-o,e(R)AE-a-o,U:, 1/2D-NOTd 3/4\ FreeBSD
   CURaYENUCURCURAo:(c)o PPP >>P SLIP -a-o>>!(c)u!C

   |p-aGS:AYENu-`aDEG-:^1L !S:shell account!" ^3s 1/2u"`i Internet
   -a-o,U:!AS:ACUR]^3\YENiYENH,O,O net/slirp
   ^3oO(R)MYENou{|!!C^3oO(R)MYENou{|!YENiYENH'-L-"NS:A-a-o^1q,-L--a
   1/2+-u^3sCURWNOTY"C,((c)w-a-o)-aADEGE ^3s 1/2u!A|p ftp CURI http
   uYENuYEN!C

   12.5. FreeBSD CURa:'(c) NAT (c)I Masquerading P:U:!H

   |p-aGS:A|^3CUR@O-an-oY-a-oCURl-oo,o(|^3CUR@YENxYENHCURW-a-o 3/4-:
   3/4^1)!A|yNOTOS:A-a-o Internet provider <<oYENuCURADEGtCUR@O IP
   number u^1S:A((c)I-aIS:AYENuCURADEGt"`iCUR@O DEGE-oA-a-o IP
   number)!AS:AYENiYENHDEGN|O natd(8) ^3oOu{|!!C natd(8)
   AAyS:AYENiYENH^3z^1L^3oCUR@O IP number AAy
   3/4aOCURl-oo,o-a-o^1q,-L-^3-L--`a^3sCURW internet!C

   ppp(8) ^3oOu{|!CUR]'-L-"NAth|u:-a-oYEN\-`a!A|p-aGS:A<<u:(c)w -nat
   ?iP:u!Calias library (libalias(3))
   |b^3o"aO^3B^2zCURe|!CURCUR^3-L-.|^3Q"IYENI"`i!C

   12.6. S:U|p|o+-N"aYENx FreeBSD YEND 3/4-:YENIYEN|aeDEGd- (parallel
   line) ^3z^1L PLIP ^3s 1/2u!H

   1/2D-DEGN|OCURaYENUCURCURAo:(c)o PLIP section -a-o^3!CURA!C

   12.7. S:U"S|^3?`i-ak<<O/YENss /dev/ed0 ^3oO device!A
   NOTDEGCURDEG>>o!H

   |]NOTDEGCUR-L->>Yn!I|b Berkeley -oo,oNOT[-ocCURCUR!AYENu|^3 kernel
   u{|! 1/2XYENiYENH-a 1/2 +-u|s"u-oo,oNOTE+-YENd!C 1/2D-DEGN|O
   /etc/rc.network ^3o OAE(R) *(c)M manual pages
   "u+-o>>P"a:YENLCUR-L-|P-oo,ou{|!!CS:oP:iCUR@"B-a-o,eDEGT!G|p
   -aGS:AA:+-+-oS:AS:^1YENth.d^2VCURF-a-o,U:!A+-zA^3,OS:a:CUR@YEN>>>>P"a:YENL
   BSD NOTUAo:S:@.~"t^2I-oo,o
   -oTH^2z|^3Ao:(R)N"ODEGN|O!FDEG-L-CURFCURO:
   1/4AEAAauU-a-oCUR-L-|PYEN~!AFreeBSD
   -a-o-oo,o-oTH^2zDEGoYEN>>CURW(c)M SunOS 4.0 (c)M Ultrix NOTOCUR@
   1/4E-a-o!C

   12.8. S:U|p|o<<O/YENss Ethernet aliases!H

   |p-aGS:A-a-o alias
   |`iS:},oS:AYENO/<<e-oo,oCURP:+--a-o|`iS:}|b|PCUR@OCURl-oo,oCURU-a-o
   ,U:!AYEN[CURJCUR@O netmask 0xffffffff |bS:A-a-o ifconfig(8)
   command-line!A 1/2d"O|pCURU!G

 # ifconfig ed0 alias 192.0.2.2 netmask 0xffffffff

   CUR-L-uM-a-o,U:!A'N|p|PYEN[CURJCUR@O.s-a-o-oo,o|`iS:}CUR@
   1/4E?eCURJS:A-a-o-oo,o|`iS:}>>PCURl -oo,o 3/4B,n!G

 # ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00

   12.9. S:U|p|o<<u:(c)wS:U-a-o 3C503 "IYENI"a:YENLCUR-L-|P-a-o-a-o
   network port!H

   |p-aG+-z.Q"IYENI"a:YENL-a-o port!AS:AYEN^2P:.|b ifconfig(8)
   -a-o(c)RYENOCURCUR <<u:(c)wABYEN~-a-oDEGN 1/4AE!CCUR-o(c)w-a-o
   port NOTO link0!Cn"IYENI AUI port YENN'A BNC port -a-o,U:!AS:iYENI
   link2!C^3o"C, flags A^3,OS:iAAU:ifconfig_* -a-oAAU:
   1/4AE"O<<u:(c)w!A S:AYENiYENH|b /etc/rc.conf ^3oOAE(R)
   *,I+-S:a:"`i ( 1/2D-DEGN|O rc.conf(5))!C

   12.10. NOTDEGCURDEG>>oS:U|b"IYENI FreeBSD -a-o NFS
   (R)EYENX^2{DEGYAD!H

   S:UIYENIS:t>>WCUR@AI-a-o>>!-ak!ANOTY"C, PC
   -a-o-oo,oYENdCURn"a:YENL-a-o|n!A^3o-oO/-aNOT-ap|b ^3y|" NFS
   ^3o-oO/^1i-oo,o+-O.P-a-ou{|!|^3(R)E.|YENX^2{DEGYAD!C

   DEGN|O the Handbook entry on NFS
   YENHAo+-o^3oOYENDAD-a-oS:o|h,eDEGT!C

   12.11. NOTDEGCURDEG>>oS:UCUR-L--`a NFS-mount Linux -a-o 3/4-:
   3/4^1!H

   NOTY"C,-a(c)YEN>>-a-o Linux NFS u{|! 1/2XYENu+-u"u: privileged
   port -a-o mount request!F,OYENI^3o|ae<<u:YENONOTYNOTY

 # mount -o -P linuxbox:/blah /mnt

   12.12. NOTDEGCURDEG>>oS:UCUR-L--`a NFS-mount Sun -a-o 3/4-:
   3/4^1!H

   P:] SunOS 4.X -a-o Sun CURuS:@-,YENu+-u"u:"O|U privileged port
   -a-o mount request!F,OYENI^3o|ae<<u:YENONOTYNOTY

 # mount -o -P sunbox:/blah /mnt

   12.13. NOTDEGCURDEG>>o mountd CUR@-a 1/2DEGYENs>>! !S:can't change
   attributes!" |OYENBS:UCUR@-a 1/2NOTY"`i !S:bad exports list!"
   ^3oODEGT(R)S:|bS:U-a-o FreeBSD NFS |o/-aA 3/4^1CURW!H

   ^3oODEGYAD^3I+-`uoYENI-a-o`i|]NOTO|b(c)oCUR-L-CURF,N /etc/exports
   -a-oYEN? 1/2T(R)ae|!!C 1/2D-,OAA-a exports(5)
   YENHCURICURaYENUCURCURAo:(c)o NFS
   -a-o^3!CURA!A-SS:ONOTOconfiguring NFS^3oCUR@NOTq!C

   12.14. NOTDEGCURDEG>>oS:U|b"IYENI PPP ^3s 1/2u"`i NeXTStep  3/4-:
   3/4^1(R)E|^3DEGYAD!H

   S:a TCP extensions "u(R)o/!A^3oO^3](c)w|b /etc/rc.conf ,I+-(DEGN|O
   rc.conf(5)) S:a YENHCURU^3oOE^3]|" NO!G

 tcp_extensions=NO

   Xylogic -a-o Annex YEND
   3/4-:CUR]|^3NOTU|P-a-oDEGYAD!A+-znDEGuNOTU|P-a-o *S:iCUR~-`a^3s
   CURW^3o"C,YEND 3/4-:!C

   12.15. S:Un<<c, 1/4ECUR~-`aS:a IP multicast support YEN'P:}!H

   FreeBSD 2.0 YENH<<a-a-o-a(c)YEN>>CUR-o(c)w^3-L-|^3 CURa:'(c)
   Multicast host  3/4THS:@!C|p-aG +-z.Q+-N+-z-a-oYEND 3/4-:^3](c)w|"
   multicast router -a-o,U:!A+-zYEN^2P:.<<.s compile +-z -a-o
   kernel!AYEN[CURJ MROUTING -a-o?iP:u!A"AYENBDEGo|ae mrouted(8)
   FreeBSD 2.2 CURICURS:<<a-a-o-a(c)YEN>>.||bP:} 3/4-:(R)EDEGo|ae
   mrouted(8) |p-aG|b /etc/rc.conf CURCUR mrouted_enable
   ^3](c)wNOTDEG "YES"

   MBONE -a-o|U-oO/CURu"aYENiYENH|bYENLI ports CURU(c)OA:YYENsDEGu
   mbone YENO/?y
   CURCURS:a:"`i!C|p-aG+-z|bS:a:uo/DEGT.|A:^3-a-oCURu"a|p vic
   YENHCURI vat-a-o,U:!A"`i"-oAa:S:a:S:a:S:a!I

   12.16. th"C,-oo,oYENdNOTO"IYENI DEC PCI chipset!H

   YENHCURUNOTO Glen Foster <gfoster@driver.nsta.org>
   '-L-"N-a-o^2M^3ae!G

   Table 12-1. Network cards based on the DEC PCI chipset

   +----------------------------------------------------------------+
   |    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        |
   |--------------+-------------------------------------------------|
   | Znyx (3.x)   | ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442,   |
   |              | ZX444, ZX474, ZX478, ZX212, ZX214 (10mbps/hd)   |
   +----------------------------------------------------------------+

   12.17. NOTDEGCURDEG>>onYENI FQDN CUR~-`a^3s"`i"a:YENL 3/4-:
   3/4^1!H

   S:ACUR]^3\.|uo^2{n^3s-a-o 3/4-:
   3/4^1"a:^1eNOTO|bYENtCUR@O-ooDEG`i!CA|O"OCURl!ADEG^2^3]S:ANOTO|b
   foo.bar.edu ^3oO-ooDEG`iCURCUR!A.Qn^3s"`i|bCUR@YENxYENs mumble
   -a-oYEND 3/4-:!AYENL|b example.org -ooDEG`iCURU!A S:AYEN^2P:.YENI
   Fully-Qualified Domain Name
   mumble.example.org!A|OCUR-L-NOTOYENuYENI mumble!C

   P:C,^2I-a-o BSD BIND resolver CUR^1^3\YENI^3o-oO/CURe|!,NYENX
   3/4-: 3/4^1-a-o|`iS:}!A|yNOTO FreeBSD CUR-o-ath bind (see
   named(8))
   -a(c)YEN>>CUR-o(c)wCURe|!!A<<hNOTODEG-L-CURFS:A(c)O|b-a-o-ooDEG`iYENHYEN~!ACUR-L-CURa:'(c)"a:YENL<<D
   FQDN -a-oAY 1/4g!C (c)OYENH|p mumble YEN^2P:.|b
   mumble.foo.example.org!AS:_<<h'N.|+-q-ooDEG`i-a-o^3I(c)^3 
   1/4hP:}(c)lS:a:!C

   ^3o(c)MYENy<<e-a-oDEGu-akCUR-L-|P!ACUR]'NNOTOCUR-L-YENI
   mumble.example.org!A(c)M mumble.edu A:~A:o.j'M!C NOTYCUR@CURU RFC
   1535!A,I+-|^3'-L-"`iNOTDEGCURDEG>>oCURS:<<e-a-oDEGu-akCUR-L-|n!ANOTAE|U:-oaNOTOO|wYENth
   -o|NOT}!C

   ^3o,I|^3OCUR-L-?u-a-o,N-ak, S:AYENiYENHYEN[CURJCUR@|ae

 search foo.example.org example.org

   instead of the previous

 domain foo.example.org

   |bS:A-a-o /etc/resolv.conf AE(R) *CURCUR ( 1/2D-DEGN|O
   resolv.conf(5))!C|yNOTOn 1/2T(c)w.j'MP:P:S:C,CUR-L-.|^1HCURI RFC
   1535 (c)O? *-a-o !S:boundary between local and public
   administration!"!C

   12.18. NOTDEGCURDEG>>oS:U|b^3s 1/2u(R)ECUR@-a 1/2YENX^2{
   !S:Permission denied!" -a-o?u>>~DEGT(R)S:!H

   |p-aG|b 1/2sA:P: kernel (R)EYEN[CURJ IPFIREWALL ?iP:u!A 
   1/2D--a`.N 2.1.7R CUR-o(c)wNOTO(c)Uu'(c)O|^3YEN
   1/4,g(R)O:a-a-o-oo,o<<EYEN](|y|bP:}uo 2.1-STABLE (R)ES:i+-
   1/4CURF)!C

   I|p-aGCUR-L-CURpCURssS:E?uCURF firewall
   -a-o^3](c)w!AS:AYENiYENHYENH root
   DEGo|aeYENHCURU(c)RYENO-oo,oYEN\-`a'N.|<<`i'_YEN?+-`!G

 # ipfw add 65534 allow all from any to any

   CUR]YENiYENH|b /etc/rc.conf YEN[CURJ firewall_type="open"
   -a-o?iP:u!C

   |p-aG.Q-a 3/4^1D|p|o^3](c)w FreeBSD firewall!A 1/2D-DEGN|O
   CURaYENUCURCURNOTUAo:^3^1,`!C

   12.19. IPFW .|^3y|"|hCURj-a-o-oo,o(c)u?d-!H

   1/2D-DEGN|OCURaYENUCURCUR Firewalls ^3^1,`!A-SS:ONOTO IPFW
   Overhead & Optimization ^3oCUR@NOTq!C

   12.20. NOTDEGCURDEG>>oS:U-a-o ipfw !S:fwd!" redirect
   ^3W<<h+-N-aADEGEA`a|V"a:YENL 3/4-: 3/4^1(R)EuL-akYEN?+-`^1BS:@!H

   YENi-`aNOTOS:ADEG-L-CURFA`aDEGe<<EYEN]YENHYEN~AUABYEN~.QP:i|ae|`iS:}A`aA:P:
   (network address translation, NAT)!A!S:fwd!" ^3W<<h(c)OP:i
   |ae-a-oDEGES:@'N|p|P|r+-(c)OYENU:!FP:EA`aDEGe<<EYEN]!AYEN|"ACUR-L-.|YENh
   *S:i<<EYEN]CURCUR-a-o,e(R)AE!C DEG^2^3]S:UI|^3|pCURU-a-o^3W<<h!G

 01000 fwd 10.0.0.1 from any to foo 21

   .iCUR@O^3q(c)^1-S(c)wYENO/ 1/4D-|`iS:} foo -a-o<<EYEN] DEGe^1FYEND
   3/4-:(R)E!A(R)U 3/4U^3o+-o/^3W<<h!A<<EYEN]+-N^3QA`aDEGe|U:
   10.0.0.1!A|yNOTOYEN|-a-oYENO/ 1/4D-|`iS:}<<oCUR'uMNOTO
   foo!I<<EYEN]-a-oYENO/ 1/4D-|`iS:}"A "S|^3 S:oS:iNOTDEG
   10.0.0.1!CCURj^3!CURA-a-oYEND 3/4-:.|+-N<<EYEN]YENa+-o!A
   |]NOTDEGYENLI"ACUR-L-NOTO^3oOYENO/ 1/4D-|`iS:}!C|]|^1!A"IYENI
   !S:fwd!" ^3W<<h
   (R)E(c)^1(c)^1CUR-L-|p"IYENI-aI(c)O^1w'A-a-o"-o-eP:P:S:Q!C^3o-oO/|aeNOTDEGNOTO"t^2I-S(c)E!A|O<<D?u>>~!C

   DEGN|O Ao:(c)o-aADEGEA`a|V-a-o+-`"-L-DEGY u-aP:DEG!A natd(8)
   CURaYENU!A(c)I-aINOTO"IYENI ports collection CURCUR^3\
   |h-aADEGEA`a|V-a-oCURu"a"OYEN?
   1/2T-a-oS:^1|"S:A.QP:i|ae-a-oCURuS:@!C

   12.21. n|p|oS:a^1iNOTYYENx 3/4-: 3/4^1-a-o-oo,o-aADEGEn"D(service
   request)A`a|V"`iYENtCUR@YENx!H

   |b ports YENO/?y-a-o!S:sysutils!"CURAAthCURCUR|^3OYENs socket
   -a-o(R)MYENo!AYENiYENHADEGS:AA`a|V FTP (c)I"a:YENLAth|u:-a-o
   -oo,o-aADEGE!CYENunS:a,O-oo,o-aADEGE-a-o(c)RYENOS:i|"(c)IYENs
   socket S:YYENi!A|pCURU(c)OYENU:!G

 ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.example.com ftp

   "a:CURCUR ftp.example.com >>P ftp CURAS:ONOTO^3QA`a"`i-a-o 3/4-:
   3/4^1(c)M port |W-oU!C

   12.22. "-o,IYENiYENHS:a:"`i-oTH^2zAW 1/4e-a-oCURu"a!H

   FreeBSD CURW|^3CURT(R)MAW 1/4e-oTH^2zCURu"a!G dummynet(4) CURw,g
   3/4a|XP:iCURJ FreeBSD "t^2I(S:o,O^2O-a-oYENI^3~, ipfw(4)); ALTQ
   YENiYENHS:KP:O"IYENI!AEmerging Technologies +-AYENX-a-o Bandwidth
   Manager <<hNOTODEGOYENI^3nAAe!C

   12.23. <<c,>>o.|P:]YENX !S:/dev/bpf0: device not
   configured!"^3oODEGT(R)S:!H

   S:ADEGo|aeCURFCUR@O>>YnNOTfS:JuU:<<EYEN]^1LAo 3/4^1 (Berkeley
   Packet Filter) -a-o u{|! (bpf(4))!A|yNOTOS:A|b kernel
   CURCUR"S|^3+-ODEGEYEN|!CS:aCURU+-^3oCUR@|aeYEN[ CURJ kernel
   ^3](c)wAECURCUR!A 1/2sA:P:CUR@O.s-a-o kernel!G

 pseudo-device bpf        # Berkeley Packet Filter

   |b<<.sP:} 3/4-:CURS:<<a!AAUnDEGuYENX device node!A|b /dev
   CURUDEGo|ae!G

 # sh MAKEDEV bpf0

   |p-aG.QnS:oP:iCUR@"B-a 3/4^1D|p|oDEGuYENX|U-oO/ device node!A
   1/2D-DEGN 3/4\ Handbook Ao:(c)oP:gAa:,`AI-a-o>>!(c)u !C

   12.24. S:Un<<c, 1/4ECUR~-`a+-N Windows  3/4-:
   3/4^1CURCUR-a-o-oI-oD-+- 3/4CURJ"t^2I, 'N^1^3 Linux '-L-"N -a-o
   smbmount "-o 1/4E!H

   "IYENI SMBFS CURu"a^2O!C^3o(R)MCURu"a^2OCURCUR
   YEN]S:tCURFCUR@"t|C-a-o kernel 
   *S:iAU|^3"IYENI-aI-a-oCURu"au{|!(userland programs)!C
   ^3o"C,u{|!(c)M,eDEGT|b ports |NOTAACURCUR net/smbfs
   CURUYENiYENHS:a:"`i!C|b 4.5-RELEASE
   CURS:<<a-a-o-a(c)YEN>><<hNOTO"t^2ICURCURCUR-o<<O/!C

   12.25. S:U|b"t^2ICURe>>xCURCURuo^2{YENHCURUDEGT(R)S:!G
   !S:icmp-response bandwidth limit 300/200 pps!"!A^3oNOTO  1/2
   1/4|I,J?|!H

   ^3oNOTO"t^2I(R)O:CURssS:iP:DS:A|^3NOTY"C,NOT!DEGECURTHuoYEN|DEGeYENXCURnYEN|(c)O>>{NOTDEGA^3,ODEGeYENXS:o
   |h-a-o ICMP (c)I TCP <<,mDEGT(R)S: (RST)!CICMP
   |^A^3DEGT(R)S:+-`+-`NOTO|]NOTDEG|^3CURH^1A ,O^3s+-uYEN
   1/4^3Q"IYENI-a-o UDP ^3qDEGTDEGd-!CTCP
   <<,mDEGT(R)S:<<hNOTO|^3CURH^1A,O^3s+-uYEN 1/4P:} (c)n TCP
   ^3qDEGTDEGd-^3y|"-a-ou^2-aG!CYENHCURU^3o"C,NOT!DEGEYENi-`a'NNOTO^3y|"^3o"C,DEGT(R)S:-a-o`i|]!G

     * 1/4ECURO-ak-a-o-aADEGE^2Ou'S:d-A>>(DoS)CURe|!
       (NOTU,u(c)oDEGw^1i-S(R)i(R)zAI"IYENI^3aeCUR@<<EYEN]-a-oS:d-A>>CURe|!)!C

     * CURjP:q-a-o^3qDEGTDEGd-+- 1/2'y(NOTU,u(c)oP:E^1A,OCURO:
       1/4AE-a-o+-`"-L--aADEGE^3qDEGTDEGd-)!C

   YENX^2{-a-o 1/4AE|rCURCUR^2A:CUR@OYENN-ai(R)U 3/4U^3o"C,NOTyP:q
   kernel A^3,ODEGeYENX-a-o<<EYEN] 1/4AE!A ^2A:CURGO 1/4AE|r<<hNOTO
   kernel YENO/<<e"i^3ICURjuoDEGe 1/4AE!CS:AYENiYENHS:QYENI sysctl 
   *S:i net.inet.icmp.icmplim AAU: 1/4AEE"OS:oS:i^3ICURjE!CA|
   "O"O>>!,|p-aGS:AE+-ae *S:i"iNOTDEG 300 packets per second!G

 # sysctl -w net.inet.icmp.icmplim=300

   |p-aGS:ACUR-L-.Q|b"t^2INOTo:?yCURCURNOTY"`i^3o"C,DEGT(R)S:!A|yNOTOCUR'uMS:AE+-ae<<O<<u|^A^3-a-o
   "i-a-o,U:!AS:AYENiYENHS:QYENI sysctl  *S:i
   net.inet.icmp.icmplim_output AAU: 1/4AE"O"u(R)o/^3o"C,DEGT (R)S:!G

 # sysctl -w net.inet.icmp.icmplim_output=0

   ^3I<<a!A|p-aGS:A.Q"u(R)o/^3o"C,"i-a-o,U:!AS:AYENiYENH^3](c)w
   net.inet.icmp.icmplim (|pCURW"O(c)OYENU:) NOTDEG
   0!CDEGo(c)oCURWz^2zYENN!AS:UICUR-L-<<O/A:^3S:A"u(R)o/^3o"C,"i!C

   12.26. ^3oO?u>>~DEGT(R)S: !S:arp: unknown hardware address
   format!" NOTOCURDEG>>o.N<<a:!H

   ^3oYENN-aiS:A-a-oDEGIDEG`i-oo,o^3s 1/2uCURW|^3CUR@"C,^3]^3AE"IYENI
   FreeBSD NOTYCUR-L-A'-a-o MAC
   (R)ae|!!C^3o^3q+-`NOTOYENN-ai|^3CURH|bS:A-a-oDEGIDEG`i-oo,oCURWP:i|ae^1eAAc,!A^3I+-`"-L--a-o'NNOTO
   cable modem -a-o^3s
   1/2u!C^3oDEGT(R)S:uL(R)`!A|OYENBA^3,OCUR-L-|U:(c)o 1/4vAAT"`i
   FreeBSD YEND  3/4-:-a-o(R)A:-`a!C

   12.27. S:Uee,E|n CVSup
   (R)MYENo!A|yNOTO|b^1A,ODEGo|ae(R)EuoYENICURF?u>>~!An<<c,>>o?`i!H

   -oYENy!ANOTYNOTY?u>>~-a-oDEGT(R)S:NOTOS:_|pCURU!G

 /usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not found

   ^3o-oO/?u>>~DEGT(R)S:YENN-aiS:AYEND 3/4-:CURW|w,E-a-o net/cvsup
   "S|^3YEN]S:t XFree86 (R)MYENo!C|p-aGS:A.Qn"IYENI CVSup
   CUR-o<<O/-a-o^1IS:ICURP:+- GUI -a-o,U:!AS:A>>Yn|w,E
   XFree86!C|^1YEN~!A|p-aGS:AYENu.QYENH(c)RYENO|CCURe |!"IYENI CVSup
   -a-o,U:!AS:AA^3,OYENy^2 3/4DEG-L-CURS:<<e |w,E-a-o(R)MYENo!C"A|w,E
   net/cvsup-without-gui ^3o(R)M ^3nAAe!C|b FreeBSD CURaYENUCURCUR
   CVSup NOTq,"CURCUR|^3S:o,O^2O-a-o>>!(c)u!C

     --------------------------------------------------------------

                      Chapter 13 "t^2I|wYENth 1/2g

   Biing Jong Lin

   13.1. CURDEG>>oNOTO sandbox!H

   13.2. CURDEG>>oNOTO securelevel?

   13.3. BIND (named) DEG-L-CURF|b^3qDEGTDEGd- 53 YENHYEN~CUR]|b
   "a:YENLDEG-a 1/2s,^1^3qDEGTDEGd- (high-numbered port) ^2aAAYEN
   (Listen)!C ^3oNOTO<<c,>>o|^"AE!H

   13.4. Sendmail DEG-L-CURF|b 1/4D-.C,-a-o^3qDEGTDEGd- 25
   YEN~CUR]|b^3qDEGTDEGd- 587 ^2aAAYEN!I^3oNOTO<<c, >>o|^"AE!H

   13.5. S:Uuo^2{CURF^3oO UID 0 toor +-b,^1!A^3oNOTOCURDEG>>o
   ,J?|!HS:U^3QP:A+- 1/4CURFP:U:!H

   13.6. NOTDEGCURDEG>>o suidperl uL-akYEN?+-`^1BS:@!H

   13.1. CURDEG>>oNOTO sandbox!H

   !S:Sandbox!" NOTO"t^2I|wYENthYENI-a-o^3N>>y!A|^3"aO.N,q!G

     * (c)n|bNOTY"C,ueAA" 3/4AA@Ad-,I-a-oDEGo|aeu{S:C,!A^3o"C,"
       3/4AA@Ad-NOTOYENI"O-ayCURi
       NOTY"C,CURH<<ICURJ^3o^1Du{S:C,!AP:i|OYENXCURJ(c)oS:oCURj-a-o"t^2ICURCUR!C

       ^3o^1Du{S:C,YENiYENHS:^1YENth|b" 3/4AA@Ad-,I
       !S:DEGES:@!"!CCUR]'N
       NOTO>>!!AYEN|(c)ODEGo|ae-a-oYENo|ou{|!CUR-L-YENi-`a.|-o-^3z"`iAd--a-oYEN~+-!C(c)OYENH|p-aG
       +-z^1iYEN||^3|wYENthCURW-a-oAAU
       1/4{!A"ACUR-L->>Yn-SS:OYENh-oEAAYENYEN|-a-oCUR@A|CUR@DEGE!ACURI
       YEN?YEN|YENu-`a|bAd-CUR-oNOT!DEGE!C

       A|"O"O>>!!AYENiYENHYENI userid "ODEGu^3o^1D"
       3/4AA@Ad-!A^3oYEN?NOTO security (c)M named
       >>!(c)uCURaaYENoCURCUR-a-o(c)w,q!C

       ^2{|b'NYENI ntalk ^3oO-aADEGES:@>>!(c)u!]"-L-
       /etc/inetd.conf!^!C^3oO-aADEGEYENH<<e-a-o userid NOTO
       root!A^2{|bDEGo|ae(R)E<<hNOTOYENI tty!Ctty
       ^3oO"IYENI-aI'NNOTOCUR@O
       sandbox!A|p-aG|^3CURH-`aDEG-:P:P:S:QYENI ntalk
       <<ICURJ"t^2I!A^2{|bYENL'N-oaP:i+-o"OCUR]YENu-`aYENI^3oO
       userid!C

     * (c)n|bNOTYO 1/4OAA 3/4-:
       3/4^1,I-a-ou{|!!A^3oCURnCURWz"O+-oS:oA:Y+-K!CDEGoYEN>>CURW
       ^3o-aiYENU:-`a<<ICURJ,Ou{|!-a-oCURHNOTU<<HYENL-`a|AP:iCURJ(c)OA:Y-a-o
       3/4-: 3/4^1!A|y"AE^1eCURW YENu.|P:iCURJ 1/4OAAYENX"O-a-o 3/4-:
       3/4^1!AuL-akP:iCUR@"B *S:iYENo|o-u^1e-a-o,e(R)AE!C

       ^1F"`i^3oOYENO/-a-o^3I+-`YENI-a-oCURe-ak!A'NNOTO|bNOTYOCURlYENO/?yCURUDEGuYENX
       1/4OAA-a-o Ao^1O!AuM<<aYENI chroot DEGo|ae,Ou{|!!A^3o
       1/4E,Ou{|!-a-o(R)UYENO/?y<<KNOTO^3oO
       CURlYENO/?y!A|O<<D"t^2I-uYEN?-a-o(R)UYENO/?y!C

       YENtCUR@O+-`"-L-S:@-akNOTO+-NNOTYOAE(R) *"t^2I mount
       |"DEGssAA-a!A|y|bYEN|
       CURW+-YENtYEN~>>s^3yYENXu{|!YENHNOTDEGYENiYENH
       1/4gCURJ-a-oAE(R) *"t^2I!C^3oOu{|!.|NOTU<<H
       YEN|YENiYENH^1i"a:YENLAE(R) *AA-a
       1/4g!A|yYENu|^3YEN|NOTYCUR-L-"`i^3oODEGssAA-a(R)A:A^3 - "t^2I
       DEGo|ae-a-oCUR@-eu{|!^3-L-NOTY+-o"`i!C

       S:UI,O^1I+-N^3oAth sandbox
       -oEP:q^3z(c)uCURAE!AAAy"IYENI-aI(c)I<<ICURJ-aI
       uL-akNOTY"`iYENLNOTOS:_|bNOTYO sandbox ,I+-!C

   UNIX ^1eS:@"a-oO/ sandbox!ACUR@O|bu{|!
   1/4h+-!AYENtCUR@O<<hNOTOYENN userid "O^1F|"!C

   "CO UNIX DEGo|aeu{S:C,.|YENI"
   3/4CURoAd-+-NYEN|(c)M(c)O|^3"a:YENLu{S:C,^1jP:}!ANOTYOu{S:C,
   CUR-L-YENiYENHAH.N *S:i"a:YENLu{S:C,|`iS:}-a-o,e(R)AE!C^3o(c)M
   Windows CURCUR!Au{|!YENiYENH>>'(c)o: 
   *S:i"a:YENL|`iS:},e(R)AE!Au^2-aG 3/4EP.i
   3/4-:-a-o+-!S:ICURjCUR-L-NOTU|P!C

   "CO UNIX u{S:C,^3-L-A:Y(c)oNOTYO-S(c)w-a-o userid!C|p-aG,O userid
   CUR-L-NOTO root!A'N.|+-NYEN|(c)M"a:YENL"IYENI-aI-a-ou{S:C,^1jP:}!C
   Userid |P(R)ECUR]YENI(c)ouw-oD-,e(R)AE-a-o|s"uAAvCURW!C

   13.2. CURDEG>>oNOTO securelevel?

   securelevel NOTO(R)O:CURssCURCUR(c)O^1eS:@-a-oCUR@O|wYENth
   3/4-:"i!CDEGoYEN>>CURW.i securelevel
   NOTOYEN?E(R)E!A(R)O:CURss.|"iNOTY"C,CURuS:@!FS:Y"INOTO superuser
   (CUR]'NNOTO root) CUR]uL-akS:^1|""-o"C,CURuS:@!C|b 1/4P: 1/4g
   YEN>>CURaa(R)E!Asecurelevel 
   3/4-:"i|bCUR@-e-a-o"iYEN~!AAU-`aDEG-:"iYENHCURU-a-oYEN\-`a!G

     * ^2MDEG-L-NOTY"C,-S(c)w-a-oAE(R) *-oX 1/4D-!A"O|p schg
       ("t^2IDEGssAA-a 1/4D--oX, the system immutable flag)

     * ,gYENN /dev/mem >>P /dev/kmem!A +-N,e(R)AE
       1/4gCURJ|U:(R)O:CURssDEGO 3/4D-AAeCURCUR

     * ,u:CURJ(R)O:CURss 1/4O^2O

     * S:oDEGE ipfirewall(4) ^3W<<h!C

   .QnAENOTd|bNOTYO^1BS:@CURCUR-a-o"t^2I-a-o securelevel
   -aNOT-oA!AYENunDEGo|aeYENHCURU (c)RYENOS:YYENi!G

 # sysctl kern.securelevel

   ?eYENX-a-ou^2-aG.|YEN]S:tCUR@O sysctl(8) AAU: 1/4AE|W-oU
   (|b^3oO"OCURlCURCUR!A YEN|NOTO kern.securelevel) YENHCURICUR@O
   1/4AE|r!C<<a-aIS:YNOTO YENO/<<e-a-o securelevel
   E!C|p-aGYEN|NOTOCUR@OYEN?E (CUR]'NNOTOCURj(c)o
   0)!A-aiYENU:|U:CURO: |^3CUR@"C, securelevel -a-o<<OAA@
   3/4-:"iCURw,gP:}+-OCURF!C

   S:A"S|^3?`i-akDEGS:CCUR@O^1BS:@CURCUR-a-o"t^2I-a-o
   securelevel!F|p-aGYENiYENH-a-o,U:!A 'NYEN-c-YENhCURF^3oO
   3/4-:"i-a-o.N,qCURF!C|p-aGS:AnS:@CUR@"C,>>Yn securelevel NOTDEG
   <<DYEN?ECUR~YENiYENH-a-oDEGES:@-a-o,U: ("O|p installworld
   (c)IS:oDEGECURe'A)!AS:A>>Yn *S:i /etc/rc.conf CUR-o-a-o
   securelevel ^3](c)w (S:a:S:a: kern_securelevel (c)M
   kern_securelevel_enable AAU: 1/4AE)!AuM<<a<<.sP:} 3/4-:!C

   .Qn-a 3/4^1DS:o|h|^3Ao:(c)o securelevel >>P|UOCUR-L-|PuYEN-AA
   1/4vAAT-a-o^2O,`!A  1/2D-DEGN|O init(8) >>!(c)uCURaaYENo!C

     Warning: securelevel YENiCUR-L-NOTO,UAEFCUR|!FYEN||^3^3\|hCURw-a
     3/4-a-o-E^3'!A(c)^1(c)^1^3y|" CUR@-oO/|wYENth-a-oDEG^2P:H!C

     YEN|CUR@O^3ICURj-a-oDEGYAD!A'NNOTOnAAy^3oOYEN\-`aS:^1YENth|^3(R)A:-a-o,U:!A|b
     securelevel
     uo'S:S:@YENI<<e-a-o+-ODEGE^1Lu{CURCUR!A(c)O|^3"IYENI"`i-a-oAE(R)
     *^3-L- YEN^2P:.^3Q<<OAA@DEG_"O!C|p-aGCUR@OS:d-A>>-aI|b
     securelevel |^3(R)A:<<e (YENN(c)o
     |^3"C,"t^2I|b+-ODEGECURCUR(c)OS:@-a-o"AE+-!!AuL-ak|b,uDEG-a-a-o
     securelevel CURCUR
     YEN?+-`^1BS:@!A(c)OYENH^3o.||b+-ODEGE^1Lu{CURCUR<<a'ACUR~.|^1BS:@)!A-`aAAyYENLI-a-ou{|!
     ^3QDEGo|ae-a-o,U:!Asecurelevel
     -a-o<<OAA@'NS:^1YENthuL(R)A:CURF!C<<OAA@+-ODEGEu{S:C,
     CURCUR(c)O|^3-a-oAE(R)
     *|bS:TH^3NCURWNOTOYENi|ae-a-o!A|yNOTO|p-aG-u-a-o^3o
     1/4ES:@-a-o,U:!A"t^2I
     -ouAA@+-N.|AAU:|"CUR@^3o^1UAEL!CS:Y"IYENuNOTO
     *S:iCUR@O^3](c)wAE!ACUR]YEN^2P:.+-N 3/4aO
     "t^2IAo:^3NOT!A|U:CURO:CUR]+-o"`i^3aeCURH 1/4O|!!C

     DEG-L-CURF^3oAI!AAU|^3^3\|h"a:YEN|-a-o-aF|e^3-L-|b^3q<<H 1/2 *
     3/4ACURWDEGQ 1/2 *!ACUR *"a:NOTO freebsd-security!C 1/2D-"`i
     ^3o,I .j'MYENH<<e-a-o DEGQ 1/2 *!C|^3"C,CURHS:AE+-ae securelevel
     -`aDEG-: 3/4"S:O:(R)o/YEN-c-!AYENNYENtCUR@OS:oAu"q-a-o 
     3/4-:"i"uYENN!ACUR-L-^1L 3/4-:.||^3AI'u-i!C

     .AI|U|ae(c)O 3/4a!C

   13.3. BIND (named) DEG-L-CURF|b^3qDEGTDEGd- 53 YENHYEN~CUR]|b
   "a:YENLDEG-a 1/2s,^1^3qDEGTDEGd- (high-numbered port) ^2aAAYEN
   (Listen)!C ^3oNOTO<<c,>>o|^"AE!H

   FreeBSD 3.0 <<a-a-o-a(c)YEN>>"IYENICUR@O-S(R)i-a-o BIND
   -a(c)YEN>>!A^3oO-a(c)YEN>>.|"I YENIAH 3/4-:-a-oDEG-a
   1/2s,^1^3qDEGTDEGd-"O|^A^3YEN~^3!-a-oNOTd,ss!C|p-aGS:A|]NOTDEGn
   3/4A|X" 3/4CURoAd--a-o
   ^3](c)w(c)INOTO^3ae-A-a-o.QAAy|UCURvNOTY"OuI-aACUR@AI|O.QYENI 53
   ^3qDEGTDEGd-|^A^3YEN~^3!NOTd,ss!A
   "-o>>oS:AYENiYENH^1A,OS:oS:iYENHCURUAE(R) *NOTUAo:CUR-o(R)e
   /etc/namedb/named.conf!G

 options {
         query-source address * port 53;
 };

   S:ACUR]YENiYENH+-N * S:oS:iNOTDEG-S(c)w IP address!A
   AC,YENHYEN[+-j+-+-"i+-o/YENo!C

   P:P:<<K(R)YEN^3ssS:A!C-`aDEG-:AA-a"uS:A"t^2ICURW-a-o sockstat(1)
   ^3o/S:i"AYENB-a`.N CUR-L-YEN?+-`-aNOT-apNOTOCUR@YENo|n"AE!I

   13.4. Sendmail DEG-L-CURF|b 1/4D-.C,-a-o^3qDEGTDEGd- 25
   YEN~CUR]|b^3qDEGTDEGd- 587 ^2aAAYEN!I^3oNOTO<<c, >>o|^"AE!H

   ,u.s-a(c)YEN>>-a-o Sendmail CURa:'(c) mail submission
   ^3oP:uYEN\-`a!A"AYENB"I YENI^3qDEGTDEGd-
   587!C^3oP:uYEN\-`aAU"S|^3^3Q 1/4s-axCURa:'(c)|yNOTOCURa:'(c)-a-o
   1/4AEYENO/YEN?|b 1/4W-ao/ CURCUR!C

   13.5. S:Uuo^2{CURF^3oO UID 0 toor +-b,^1!A^3oNOTOCURDEG>>o
   ,J?|!HS:U^3QP:A+- 1/4CURFP:U:!H

   (c)nCURss!Ctoor NOTOCUR@O !S:alternative!" -oTH^2z-aI+-b,^1 (toor
   NOTO root -a-oA`a|V<<-:-ak)!C YENH(c)^1NOTO,oAH bash(1)
   |w,E|O<<O/"i-a-o!A<<a"O<<h|"NOTDEG"t^2ICUR-o(c)w<<O/"i-a-oCUR@
   O+-b,^1!C^3oO+-b,^1+-N|nAHCUR@O<<D 1/4D-.C,-a-o shell 'u,O"IYENI!A
   AAyS:ACUR-L->>YnYENh S:oS:i"`i root -a-oCUR-o<<O/
   shell!C|]NOTDEG^3o"C,"a:YENL-a-o shell "A"S|^3,oAH"t^2I^1w^3]E|w,E
   (A|"O"O>>!!ANOTY"C,YENN ports |w,E-a-o shell
   package)!A|O^3QCUR-o(c)w|w,E|b /usr/local/bin
   YENO/?yCURU!A|^3YENi-`a|s|bCUR-L-|P-a-oAE(R) *"t^2ICURCUR!C OY
   root -a-o shell ^3Q(c)n|b /usr/local/bin!AYENB /usr
   ((c)INOTO"a:YENLYEN]S:tuU /usr/local/bin ^3oOCURlYENO/?y-a-oAE(R)
   *"t^2I) |]NOTDEGNOTY"C,`i|]"A"S|^3^3QYEN?+-`-a-o mount
   DEG_"O-a-o,U:!Aroot +-NuL-akYEN?+-`-a-ounCURJ"t^2IP:i|ae-ou *
   (Ao:uM>>!S:A<<P:} 3/4-:|"^3aeCURH 1/4O|!'N.|DEGYS:An ,u:CURJthO
   shell)!C

   |^3"C,CURH"IYENI toor +-b,^1P:i|ae"CCURe-a-o root
   -ouAA@CURuS:@!A|p|^1YENiYENH"IYENI<<D 1/4D-.C,-a-o shell!A|O root
   YENiYENH<<O-d 1/4D-.C, shell!A YENH|]A^3^3aeCUR@"IYENI-aI 1/4O|!
   (single user mode) (c)I-oo<<ae-aNOT-ap^3B^2z!C
   "I.O"t^2ICUR-o(c)wE!AS:A+-NuL-ak"IYENI toor unCURJ!A
   |]NOTDEG^3oO+-b,^1(c)|YEN 1/4S:oS:i+-K
   1/2X^3](c)w!C|]|^1S:A|p-aGS:A.Q+-ODEGE^3oO+-b,^1!AS:A>>Yn "IYENI
   root unCURJ"t^2I"AYENB *S:i toor -a-o+-K 1/2X!C

   13.6. NOTDEGCURDEG>>o suidperl uL-akYEN?+-`^1BS:@!H

   |]NOTDEGNOTY"C,|wYENth-a-o|O!Asuidperl CUR-o(c)w-a-o|w,E
   "A"S|^3^3](c)w suid
   bit!C"t^2I-oTH^2z-aIYENiYENH"I.OYENHCURU(c)RYENO+-ODEGE suid
   ^3](c)w!C

 # chmod u+s /usr/bin/suidperl

   |p-aGS:A.Qn|bYENN source CURE-AA(R)E suidperl CUR-o(c)w +-ODEGE
   suid YEN\-`a-a-o,U:!A 1/2s?e /etc/make.conf YEN[CURJ
   ENABLE_SUIDPERL=true uM<<aDEGo|ae make buildworld!C

     --------------------------------------------------------------

                             Chapter 14 PPP

   14.1. I cannot make ppp(8) work. What am I doing wrong?

   14.2. Why does ppp(8) hang when I run it?

   14.3. Why will ppp(8) not dial in -auto mode?

   14.4. What does !S:No route to host!" mean?

   14.5. Why does my connection drop after about 3 minutes?

   14.6. Why does my connection drop under heavy load?

   14.7. Why does my connection drop after a random amount of time?

   14.8. Why does my connection hang after a random amount of time?

   14.9. The remote end is not responding. What can I do?

   14.10. ppp(8) has hung. What can I do?

   14.11. Why does nothing happen after the !S:Login OK!!" message?

   14.12. I keep seeing errors about magic being the same. What does
   it mean?

   14.13. LCP negotiations continue until the connection is closed.
   What is wrong?

   14.14. Why does ppp(8) lock up shortly after connection?

   14.15. Why does ppp(8) lock up when I shell out to test it?

   14.16. Why does ppp(8) over a null-modem cable never exit?

   14.17. Why does ppp(8) dial for no reason in -auto mode?

   14.18. What do these CCP errors mean?

   14.19. Why does ppp(8) lock up during file transfers with IO
   errors?

   14.20. Why does ppp(8) not log my connection speed?

   14.21. Why does ppp(8) ignore the \ character in my chat script?

   14.22. Why does ppp(8) get a seg-fault, but I see no ppp.core
   file?

   14.23. Why does the process that forces a dial in auto mode never
   connect?

   14.24. Why do most games not work with the -nat switch?

   14.25. Has anybody made a list of useful port numbers?

   14.26. What are FCS errors?

   14.27. Why do MacOS and Windows 98 connections freeze when running
   PPPoE on the gateway?

   14.28. None of this helps - I am desperate! What can I do?

   14.1. I cannot make ppp(8) work. What am I doing wrong?

   You should first read the ppp(8) man page and the PPP section of
   the handbook. Enable logging with the command

 set log Phase Chat Connect Carrier lcp ipcp ccp command

   This command may be typed at the ppp(8) command prompt or it may
   be entered in the /etc/ppp/ppp.conf configuration file (the start
   of the default section is the best place to put it). Make sure
   that /etc/syslog.conf (see syslog.conf(5)) contains the lines

 !ppp
 *.*        /var/log/ppp.log

   and that the file /var/log/ppp.log exists. You can now find out a
   lot about what is going on from the log file. Do not worry if it
   does not all make sense. If you need to get help from someone, it
   may make sense to them.

   If your version of ppp(8) does not understand the set log command,
   you should download the latest version. It will build on FreeBSD
   version 2.1.5 and higher.

   14.2. Why does ppp(8) hang when I run it?

   This is usually because your hostname will not resolve. The best
   way to fix this is to make sure that /etc/hosts is consulted by
   your resolver first by editing /etc/host.conf and putting the
   hosts line first. Then, simply put an entry in /etc/hosts for your
   local machine. If you have no local network, change your localhost
   line:

 127.0.0.1        foo.bar.com foo localhost

   Otherwise, simply add another entry for your host. Consult the
   relevant man pages for more details.

   You should be able to successfully ping -c1 `hostname` when you
   are done.

   14.3. Why will ppp(8) not dial in -auto mode?

   First, check that you have got a default route. By running netstat
   -rn (see netstat(1)), you should see two entries like this:

 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

   This is assuming that you have used the addresses from the
   handbook, the man page or from the ppp.conf.sample file. If you do
   not have a default route, it may be because you are running an old
   version of ppp(8) that does not understand the word HISADDR in the
   ppp.conf file. If your version of ppp(8) is from before FreeBSD
   2.2.5, change the

 add 0 0 HISADDR

   line to one saying

 add 0 0 10.0.0.2

   Another reason for the default route line being missing is that
   you have mistakenly set up a default router in your /etc/rc.conf
   (see rc.conf(5)) file (this file was called /etc/sysconfig prior
   to release 2.2.2), and you have omitted the line saying

 delete ALL

   from ppp.conf. If this is the case, go back to the Final system
   configuration section of the handbook.

   14.4. What does !S:No route to host!" mean?

   This error is usually due to a missing

 MYADDR:
   delete ALL
   add 0 0 HISADDR

   section in your /etc/ppp/ppp.linkup file. This is only necessary
   if you have a dynamic IP address or do not know the address of
   your gateway. If you are using interactive mode, you can type the
   following after entering packet mode (packet mode is indicated by
   the capitalized PPP in the prompt):

 delete ALL
 add 0 0 HISADDR

   Refer to the PPP and Dynamic IP addresses section of the handbook
   for further details.

   14.5. Why does my connection drop after about 3 minutes?

   The default PPP timeout is 3 minutes. This can be adjusted with
   the line

 set timeout NNN

   where NNN is the number of seconds of inactivity before the
   connection is closed. If NNN is zero, the connection is never
   closed due to a timeout. It is possible to put this command in the
   ppp.conf 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 ppps server socket using telnet(1) or pppctl(8).
   Refer to the ppp(8) man page for further details.

   14.6. Why does my connection drop under heavy load?

   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

 disable lqr

   14.7. Why does my connection drop after a random amount of time?

   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.

   There is a setting on most modems for determining how tolerant it
   should be to temporary losses of carrier. On a USR Sportster for
   example, this is measured by the S10 register in tenths of a
   second. To make your modem more forgiving, you could add the
   following send-expect sequence to your dial string:

 set dial "...... ATS10=10 OK ......"

   Refer to your modem manual for details.

   14.8. Why does my connection hang after a random amount of time?

   Many people experience hung connections with no apparent
   explanation. The first thing to establish is which side of the
   link is hung.

   If you are using an external modem, you can simply try using
   ping(8) to see if the TD light is flashing when you transmit data.
   If it flashes (and the RD light does not), the problem is with the
   remote end. If TD does not flash, the problem is local. With an
   internal modem, you will need to use the set server command in
   your ppp.conf file. When the hang occurs, connect to ppp(8) using
   pppctl(8). If your network connection suddenly revives (PPP was
   revived due to the activity on the diagnostic socket) or if you
   cannot connect (assuming the set socket command succeeded at
   startup time), the problem is local. If you can connect and things
   are still hung, enable local async logging with set log local
   async and use ping(8) from another window or terminal to make use
   of the link. The async logging will show you the data being
   transmitted and received on the link. If data is going out and not
   coming back, the problem is remote.

   Having established whether the problem is local or remote, you now
   have two possibilities:

   14.9. The remote end is not responding. What can I do?

   There is very little you can do about this. Most ISPs will refuse
   to help if you are not running a Microsoft OS. You can enable lqr
   in your ppp.conf file, allowing ppp(8) to detect the remote
   failure and hang up, but this detection is relatively slow and
   therefore not that useful. You may want to avoid telling your ISP
   that you are running user-PPP...

   First, try disabling all local compression by adding the following
   to your configuration:

 disable pred1 deflate deflate24 protocomp acfcomp shortseq vj
 deny pred1 deflate deflate24 protocomp acfcomp shortseq vj

   Then reconnect to ensure that this makes no difference. If things
   improve or if the problem is solved completely, determine which
   setting makes the difference through trial and error. This will
   provide good ammunition when you contact your ISP (although it may
   make it apparent that you are not running a Microsoft product).

   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
   (!S:Memory fault, core dumped!"?).

   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 Brian Somers <brian@FreeBSD.org>, or even to ask
   your ISP to contact me directly.

   14.10. ppp(8) has hung. What can I do?

   Your best bet here is to rebuild ppp(8) by adding CFLAGS+=-g and
   STRIP= to the end of the Makefile, then doing a make clean && make
   && make install. When ppp(8) hangs, find the ppp(8) process id
   with ps ajxww | fgrep ppp and run gdb ppp PID. From the gdb
   prompt, you can then use bt to get a stack trace.

   Send the results to <brian@Awfulhak.org>.

   14.11. Why does nothing happen after the !S:Login OK!!" message?

   Prior to FreeBSD version 2.2.5, once the link was established,
   ppp(8) would wait for the peer to initiate the Line Control
   Protocol (LCP). Many ISPs will not initiate negotiations and
   expect the client to do so. To force ppp(8) to initiate the LCP,
   use the following line:

 set openmode active

     Note: It usually does no harm if both sides initiate
     negotiation, so openmode is now active by default. However, the
     next section explains when it does do some harm.

   14.12. I keep seeing errors about magic being the same. What does
   it mean?

   Occasionally, just after connecting, you may see messages in the
   log that say !S:magic is the same!". Sometimes, these messages are
   harmless, and sometimes one side or the other exits. Most PPP
   implementations cannot survive this problem, and even if the link
   seems to come up, you will see repeated configure requests and
   configure acknowledgments in the log file until ppp(8) eventually
   gives up and closes the connection.

   This normally happens on server machines with slow disks that are
   spawning a getty on the port, and executing ppp(8) from a login
   script or program after login. I have also heard reports of it
   happening consistently when using slirp. The reason is that in the
   time taken between getty(8) exiting and ppp(8) starting, the
   client-side ppp(8) starts sending Line Control Protocol (LCP)
   packets. Because ECHO is still switched on for the port on the
   server, the client ppp(8) sees these packets !S:reflect!" back.

   One part of the LCP negotiation is to establish a magic number for
   each side of the link so that !S:reflections!" 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(8) sends LCP packets, sees the same magic in
   the reflected packet and NAKs it. It also sees the NAK reflect
   (which also means ppp(8) must change its magic). This produces a
   potentially enormous number of magic number changes, all of which
   are happily piling into the server's tty buffer. As soon as ppp(8)
   starts on the server, it is flooded with magic number changes and
   almost immediately decides it has tried enough to negotiate LCP
   and gives up. Meanwhile, the client, who no longer sees the
   reflections, becomes happy just in time to see a hangup from the
   server.

   This can be avoided by allowing the peer to start negotiating with
   the following line in your ppp.conf file:

 set openmode passive

   This tells ppp(8) to wait for the server to initiate LCP
   negotiations. Some servers however may never initiate
   negotiations. If this is the case, you can do something like:

 set openmode active 3

   This tells ppp(8) to be passive for 3 seconds, and then to start
   sending LCP requests. If the peer starts sending requests during
   this period, ppp(8) will immediately respond rather than waiting
   for the full 3 second period.

   14.13. LCP negotiations continue until the connection is closed.
   What is wrong?

   There is currently an implementation mis-feature in ppp(8) where
   it does not associate LCP, CCP & IPCP responses with their
   original requests. As a result, if one PPP implementation is more
   than 6 seconds slower than the other side, the other side will
   send two additional LCP configuration requests. This is fatal.

   Consider two implementations, A and B. A starts sending LCP
   requests immediately after connecting and B takes 7 seconds to
   start. When B starts, A has sent 3 LCP REQs. We are assuming the
   line has ECHO switched off, otherwise we would see magic number
   problems as described in the previous section. B sends a REQ, then
   an ACK to the first of A's REQs. This results in A entering the
   OPENED state and sending and ACK (the first) back to B. In the
   meantime, B sends back two more ACKs in response to the two
   additional REQs sent by A before B started up. B then receives the
   first ACK from A and enters the OPENED state. A receives the
   second ACK from B and goes back to the REQ-SENT state, sending
   another (forth) REQ as per the RFC. It then receives the third ACK
   and enters the OPENED state. In the meantime, B receives the forth
   REQ from A, resulting in it reverting to the ACK-SENT state and
   sending another (second) REQ and (forth) ACK as per the RFC. A
   gets the REQ, goes into REQ-SENT and sends another REQ. It
   immediately receives the following ACK and enters OPENED.

   This goes on until one side figures out that they are getting
   nowhere and gives up.

   The best way to avoid this is to configure one side to be passive
   - that is, make one side wait for the other to start negotiating.
   This can be done with the

 set openmode passive

   command. Care should be taken with this option. You should also
   use the

 set stopped N

   command to limit the amount of time that ppp(8) waits for the peer
   to begin negotiations. Alternatively, the

 set openmode active N

   command (where N is the number of seconds to wait before starting
   negotiations) can be used. Check the manual page for details.

   14.14. Why does ppp(8) lock up shortly after connection?

   Prior to version 2.2.5 of FreeBSD, it was possible that your link
   was disabled shortly after connection due to ppp(8) mis-handling
   Predictor1 compression negotiation. This would only happen if both
   sides tried to negotiate different Compression Control Protocols
   (CCP). This problem is now corrected, but if you are still running
   an old version of ppp(8) the problem can be circumvented with the
   line

 disable pred1

   14.15. Why does ppp(8) lock up when I shell out to test it?

   When you execute the shell or ! command, ppp(8) executes a shell
   (or if you have passed any arguments, ppp(8) will execute those
   arguments). Ppp will wait for the command to complete before
   continuing. If you attempt to use the PPP link while running the
   command, the link will appear to have frozen. This is because
   ppp(8) is waiting for the command to complete.

   If you wish to execute commands like this, use the !bg command
   instead. This will execute the given command in the background,
   and ppp(8) can continue to service the link.

   14.16. Why does ppp(8) over a null-modem cable never exit?

   There is no way for ppp(8) to automatically determine that a
   direct connection has been dropped. This is due to the lines that
   are used in a null-modem serial cable. When using this sort of
   connection, LQR should always be enabled with the line

 enable lqr

   LQR is accepted by default if negotiated by the peer.

   14.17. Why does ppp(8) dial for no reason in -auto mode?

   If ppp(8) is dialing unexpectedly, you must determine the cause,
   and set up Dial filters (dfilters) to prevent such dialing.

   To determine the cause, use the following line:

 set log +tcp/ip

   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.

   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 not prevent
   ppp(8) from passing the packets through an established
   connection), use the following:

 set dfilter 1 deny udp src eq 53
 set dfilter 2 deny udp dst eq 53
 set dfilter 3 permit 0/0 0/0

   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.

   In the DNS case, you should try to determine what is actually
   trying to resolve a host name. A lot of the time, sendmail(8) is
   the culprit. You should make sure that you tell sendmail not to do
   any DNS lookups in its configuration file. See the section on Mail
   Configuration 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 .mc file:

 define(`confDELIVERY_MODE', `d')dnl

   This will make sendmail queue everything until the queue is run
   (usually, sendmail is invoked with -bd -q30m, telling it to run
   the queue every 30 minutes) or until a sendmail -q is done
   (perhaps from your ppp.linkup file).

   14.18. What do these CCP errors mean?

   I keep seeing the following errors in my log file:

 CCP: CcpSendConfigReq
 CCP: Received Terminate Ack (1) state = Req-Sent (6)

   This is because ppp(8) is trying to negotiate Predictor1
   compression, and the peer does not want to negotiate any
   compression at all. The messages are harmless, but if you wish to
   remove them, you can disable Predictor1 compression locally too:

 disable pred1

   14.19. Why does ppp(8) lock up during file transfers with IO
   errors?

   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.

   The PPP specification says that an MRU of 1500 should always 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.

   The problem can be circumvented by never setting an MTU of less
   than 1500 under FreeBSD 2.2.2 or before.

   14.20. Why does ppp(8) not log my connection speed?

   In order to log all lines of your modem !S:conversation!", you
   must enable the following:

 set log +connect

   This will make ppp(8) log everything up until the last requested
   !S:expect!" string.

   If you wish to see your connect speed and are using PAP or CHAP
   (and therefore do not have anything to !S:chat!" after the CONNECT
   in the dial script - no set login script), you must make sure that
   you instruct ppp(8) to !S:expect!" the whole CONNECT line,
   something like this:

 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \
   \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"

   Here, we get our CONNECT, send nothing, then expect a line-feed,
   forcing ppp(8) to read the whole CONNECT response.

   14.21. Why does ppp(8) ignore the \ character in my chat script?

   Ppp parses each line in your config files so that it can interpret
   strings such as set phone "123 456 789" correctly (and realize
   that the number is actually only one argument. In order to specify
   a " character, you must escape it using a backslash (\).

   When the chat interpreter parses each argument, it re-interprets
   the argument in order to find any special escape sequences such as
   \P or \T (see the man page). As a result of this double-parsing,
   you must remember to use the correct number of escapes.

   If you wish to actually send a \ character to (say) your modem,
   you would need something like:

 set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"

   resulting in the following sequence:

 ATZ
 OK
 AT\X
 OK

   or

 set phone 1234567
 set dial "\"\" ATZ OK ATDT\\T"

   resulting in the following sequence:

 ATZ
 OK
 ATDT1234567

   14.22. Why does ppp(8) get a seg-fault, but I see no ppp.core
   file?

   Ppp (or any other program for that matter) should never dump core.
   Because ppp(8) runs with an effective user id of 0, the operating
   system will not write ppp(8)'s core image to disk before
   terminating it. If, however ppp(8) is actually terminating due to
   a segmentation violation or some other signal that normally causes
   core to be dumped, and you are sure you are using the latest
   version (see the start of this section), then you should do the
   following:

 % 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

   You will now have a debuggable version of ppp(8) installed. You
   will have to be root to run ppp(8) as all of its privileges have
   been revoked. When you start ppp(8), take a careful note of what
   your current directory was at the time.

   Now, if and when ppp(8) receives the segmentation violation, it
   will dump a core file called ppp.core. You should then do the
   following:

 % su
 # gdb /usr/sbin/ppp ppp.core
 (gdb) bt
 .....
 (gdb) f 0
 ....
 (gdb) i args
 ....
 (gdb) l
 .....

   All of this information should be given alongside your question,
   making it possible to diagnose the problem.

   If you are familiar with gdb, you may wish to find out some other
   bits and pieces such as what actually caused the dump and the
   addresses & values of the relevant variables.

   14.23. Why does the process that forces a dial in auto mode never
   connect?

   This was a known problem with ppp(8) set up to negotiate a dynamic
   local IP number with the peer in auto mode. It is fixed in the
   latest version - search the man page for iface.

   The problem was that when that initial program calls connect(2),
   the IP number of the tun interface is assigned to the socket
   endpoint. The kernel creates the first outgoing packet and writes
   it to the tun device. ppp(8) then reads the packet and establishes
   a connection. If, as a result of ppp(8)'s dynamic IP assignment,
   the interface address is changed, the original socket endpoint
   will be invalid. Any subsequent packets sent to the peer will
   usually be dropped. Even if they are not, any responses will not
   route back to the originating machine as the IP number is no
   longer owned by that machine.

   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 :-) The current version of ppp(8) does this, but most
   other implementations do not.

   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 iface-alias
   option in the latest version of ppp(8) is doing (with the help of
   libalias(3) and ppp(8)'s -nat switch) - it is maintaining all
   previous interface addresses and NATing them to the last
   negotiated address.

   Another alternative (and probably the most reliable) would be to
   implement a system call that changes all bound sockets from one IP
   to another. ppp(8) would use this call to modify the sockets of
   all existing programs when a new IP number is negotiated. The same
   system call could be used by dhcp clients when they are forced to
   re-bind() their sockets.

   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
   ppp(8) to change the source IP number, but only if it is set to
   255.255.255.255, and only the IP number and IP checksum would need
   to change. This, however is a bit of a hack as the kernel would be
   sending bad packets to an improperly configured interface, on the
   assumption that some other mechanism is capable of fixing things
   retrospectively.

   14.24. Why do most games not work with the -nat switch?

   The reason games and the like do not work when libalias is in use
   is that the machine on the outside will try to open a connection
   or send (unsolicited) UDP packets to the machine on the inside.
   The NAT software does not know that it should send these packets
   to the interior machine.

   To make things work, make sure that the only thing running is the
   software that you are having problems with, then either run
   tcpdump on the tun interface of the gateway or enable ppp(8)
   tcp/ip logging (set log +tcp/ip) on the gateway.

   When you start the offending software, you should see packets
   passing through the gateway machine. When something comes back
   from the outside, it will be dropped (that is the problem). Note
   the port number of these packets then shut down the offending
   software. Do this a few times to see if the port numbers are
   consistent. If they are, then the following line in the relevant
   section of /etc/ppp/ppp.conf will make the software functional:

 nat port proto internalmachine:port port

   where proto is either tcp or udp, internalmachine is the machine
   that you want the packets to be sent to and port is the
   destination port number of the packets.

   You will not be able to use the software on other machines without
   changing the above command, and running the software on two
   internal machines at the same time is out of the question - after
   all, the outside world is seeing your entire internal network as
   being just a single machine.

   If the port numbers are not consistent, there are three more
   options:

    1. Submit support in libalias. Examples of !S:special cases!" can
       be found in /usr/src/lib/libalias/alias_*.c (alias_ftp.c 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
       !S:route!" in the alias table so that the subsequent packets
       know where to go.

       This is the most difficult solution, but it is the best and
       will make the software work with multiple machines.

    2. Use a proxy. The application may support socks5 for example,
       or (as in the !S:cvsup!" case) may have a !S:passive!" option
       that avoids ever requesting that the peer open connections
       back to the local machine.

    3. Redirect everything to the internal machine using nat addr.
       This is the sledge-hammer approach.

   14.25. Has anybody made a list of useful port numbers?

   Not yet, but this is intended to grow into such a list (if any
   interest is shown). In each example, internal should be replaced
   with the IP number of the machine playing the game.

     * Asheron's Call

       nat port udp internal :65000 65000

       Manually change the port number within the game to 65000. If
       you have got a number of machines that you wish to play on
       assign a unique port number for each (i.e. 65001, 65002, etc)
       and add a nat port line for each one.

     * Half Life

       nat port udp internal:27005 27015

     * PCAnywhere 8.0

       nat port udp internal:5632 5632

       nat port tcp internal:5631 5631

     * Quake

       nat port udp internal:6112 6112

       Alternatively, you may want to take a look at www.battle.net
       for Quake proxy support.

     * Quake 2

       nat port udp internal:27901 27910

       nat port udp internal:60021 60021

       nat port udp internal:60040 60040

     * Red Alert

       nat port udp internal:8675 8675

       nat port udp internal:5009 5009

   14.26. What are FCS errors?

   FCS stands for Frame Check Sequence. 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 show hdlc command.

   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.

   If your link freezes as soon as you have connected and you see a
   large number of FCS errors, this may be because your link is not 8
   bit clean. Make sure your modem is not using software flow control
   (XON/XOFF). If your datalink must use software flow control, use
   the command set accmap 0x000a0000 to tell ppp(8) to escape the ^Q
   and ^S characters.

   Another reason for seeing too many FCS errors may be that the
   remote end has stopped talking PPP. You may want to enable async
   logging at this point to determine if the incoming data is
   actually a login or shell prompt. If you have a shell prompt at
   the remote end, it is possible to terminate ppp(8) without
   dropping the line by using the close lcp command (a following term
   command will reconnect you to the shell on the remote machine.

   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.

   14.27. Why do MacOS and Windows 98 connections freeze when running
   PPPoE on the gateway?

   Thanks to Michael Wozniak <mwozniak@netcom.ca> for figuring this
   out and Dan Flemming <danflemming@mac.com> for the Mac solution:

   This is due to what is called a !S:Black Hole!" 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) and have the !S:do not fragment!"
   bit set (default of TCP) and the Telco router is not sending ICMP
   !S:must fragment!" back to the www site you are trying to load.
   (Alternatively, the router is sending the ICMP packet correctly,
   but the firewall at the www site is dropping it.) When the www
   server is sending you frames that do not fit into the PPPoE pipe
   the Telco router drops them on the floor and your page does not
   load (some pages/graphics do as they are smaller than a MSS.) This
   seems to be the default of most Telco PPPoE configurations (if
   only they knew how to program a router... sigh...)

   One fix is to use regedit on your 95/98 boxes to add the following
   registry entry...

 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU

   It should be a string with a value !S:1436!", as some ADSL routers
   are reported to be unable to deal with packets larger than this.
   This registry key has been changed to
   Tcpip\Parameters\Interfaces\ID for adapter\MTU in Windows 2000 and
   becomes a DWORD.

   Refer to the Microsoft Knowledge Base documents Q158474 - Windows
   TCPIP Registry Entries and Q120642 - TCPIP & NBT Configuration
   Parameters for Windows NT for more information on changing Windows
   MTU to work with a NAT router.

   Another regedit possibility under Windows 2000 is to set the
   Tcpip\Parameters\Interfaces\ID for adapter\EnablePMTUBHDetect
   DWORD to 1 as mentioned in the Microsoft document 120642 mentioned
   above.

   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 Sustainable Softworks, that will allow users to
   customize TCP/IP settings. MacOS NAT users should select
   ip_interface_MTU from the drop-down menu, enter 1450 instead of
   1500 in the box, click the box next to Save as Auto Configure, and
   click Make Active.

   The latest version of ppp(8) (2.3 or greater) has an enable
   tcpmssfixup command that will automatically adjust the MSS to an
   appropriate value. This facility is enabled by default. If you are
   stuck with an older version of ppp(8), you may want to look at the
   tcpmssd port.

   14.28. None of this helps - I am desperate! What can I do?

   If all else fails, send as much information as you can, including
   your config files, how you are starting ppp(8), the relevant parts
   of your log file and the output of the netstat -rn command (before
   and after connecting) to the FreeBSD general questions P:l>> 1/4
   1/2 * 3/4A or the comp.unix.bsd.freebsd.misc news group, and
   someone should point you in the right direction.

     --------------------------------------------------------------

                    Chapter 15 Serial Communications

   This section answers common questions about serial communications
   with FreeBSD. PPP and SLIP are covered in the Chapter 12 section.

   15.1. How do I tell if FreeBSD found my serial ports?

   15.2. How do I tell if FreeBSD found my modem cards?

   15.3. I just upgraded to 2.0.5 and my tty0X are missing! How do I
   solve this problem?

   15.4. How do I access the serial ports on FreeBSD?

   15.5. How do I enable support for a multiport serial card?

   15.6. Can FreeBSD handle multiport serial cards sharing irqs?

   15.7. Can I set the default serial parameters for a port?

   15.8. How can I enable dialup logins on my modem?

   15.9. How can I connect a dumb terminal to my FreeBSD box?

   15.10. Why can I not run tip or cu?

   15.11. My stock Hayes modem is not supported---what can I do?

   15.12. How am I expected to enter these AT commands?

   15.13. Why does the <@> sign for the pn capability not work?

   15.14. How can I dial a phone number on the command line?

   15.15. Do I have to type in the bps rate every time I do that?

   15.16. How can I more easily access a number of hosts through a
   terminal server?

   15.17. Can tip try more than one line for each site?

   15.18. Why do I have to hit CTRL+P twice to send CTRL+P once?

   15.19. Why is everything I type suddenly in UPPER CASE?

   15.20. How can I do file transfers with tip?

   15.21. How can I run zmodem with tip?

   15.22. Why does FreeBSD not find my serial ports, even when the
   settings are correct?

   15.1. How do I tell if FreeBSD found my serial ports?

   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

 % dmesg | grep sio

   after your system is up and running.

   Here is some example output from the above command:

 sio0 at 0x3f8-0x3ff irq 4 on isa
 sio0: type 16550A
 sio1 at 0x2f8-0x2ff irq 3 on isa
 sio1: type 16550A

   This shows two serial ports. The first is on irq 4, is using port
   address 0x3f8, 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
   0x2f8. Internal modem cards are treated just like serial
   ports---except that they always have a modem !S:attached!" to the
   port.

   The GENERIC kernel includes support for two serial ports using the
   same irq and port address settings in the above example. If these
   settings are not right for your system, or if you have added modem
   cards or have more serial ports than your kernel is configured
   for, just reconfigure your kernel. See section about building a
   kernel for more details.

   15.2. How do I tell if FreeBSD found my modem cards?

   Refer to the answer to the previous question.

   15.3. I just upgraded to 2.0.5 and my tty0X are missing! How do I
   solve this problem?

   Do not worry, they have been merged with the ttydX devices. You
   will have to change any old configuration files you have, though.

   15.4. How do I access the serial ports on FreeBSD?

   The third serial port, sio2 (see sio(4), known as COM3 in DOS), is
   on /dev/cuaa2 for dial-out devices, and on /dev/ttyd2 for dial-in
   devices. What is the difference between these two classes of
   devices?

   You use ttydX for dial-ins. When opening /dev/ttydX in blocking
   mode, a process will wait for the corresponding cuaaX device to
   become inactive, and then wait for the carrier detect line to go
   active. When you open the cuaaX device, it makes sure the serial
   port is not already in use by the ttydX device. If the port is
   available, it !S:steals!" it from the ttydX device. Also, the
   cuaaX device does not care about carrier detect. With this scheme
   and an auto-answer modem, you can have remote users log in and you
   can still dial out with the same modem and the system will take
   care of all the conflicts.

   15.5. How do I enable support for a multiport serial card?

   Again, the section on kernel configuration provides information
   about configuring your kernel. For a multiport serial card, place
   an sio(4) line for each serial port on the card in the kernel
   configuration file. But place the irq and vector specifiers on
   only one of the entries. All of the ports on the card should share
   one irq. For consistency, use the last serial port to specify the
   irq. Also, specify the COM_MULTIPORT option.

   The following example is for an AST 4-port serial card on irq 7:

 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

   The flags indicate that the master port has minor number 7
   (0x700), diagnostics enabled during probe (0x080), and all the
   ports share an irq (0x001).

   15.6. Can FreeBSD handle multiport serial cards sharing irqs?

   Not yet. You will have to use a different irq for each card.

   15.7. Can I set the default serial parameters for a port?

   The ttydX (or cuaaX) 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

 # stty -a -f /dev/ttyd1

   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 !S:initial state!" device.
   For example, to turn on CLOCAL mode, 8 bits, and XON/XOFF flow
   control by default for ttyd5, do:

 # stty -f /dev/ttyid5 clocal cs8 ixon ixoff

   A good place to do this is in /etc/rc.serial. Now, an application
   will have these settings by default when it opens ttyd5. It can
   still change these settings to its liking, though.

   You can also prevent certain settings from being changed by an
   application by making adjustments to the !S:lock state!" device.
   For example, to lock the speed of ttyd5 to 57600 bps, do

 # stty -f /dev/ttyld5 57600

   Now, an application that opens ttyd5 and tries to change the speed
   of the port will be stuck with 57600 bps.

   Naturally, you should make the initial state and lock state
   devices writable only by root. The MAKEDEV(8) script does NOT do
   this when it creates the device entries.

   15.8. How can I enable dialup logins on my modem?

   So you want to become an Internet service provider, eh? First, you
   will need one or more modems that can auto-answer. Your modem will
   need to assert carrier-detect when it detects a carrier and not
   assert it all the time. It will need to hang up the phone and
   reset itself when the data terminal ready (DTR) line goes from on
   to off. It should probably use RTS/CTS 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.

   For many Hayes command-set--compatible modems, this command will
   make these settings and store them in nonvolatile memory:

 AT &C1 &D3 &K3 &Q6 S0=1 &W

   See the section on sending AT commands below for information on
   how to make these settings without resorting to an MS-DOS terminal
   program.

   Next, make an entry in /etc/ttys (see ttys(5)) for the modem. This
   file lists all the ports on which the operating system will await
   logins. Add a line that looks something like this:

 ttyd1 "/usr/libexec/getty std.57600" dialup on insecure

   This line indicates that the second serial port (/dev/ttyd1) has a
   modem connected running at 57600 bps and no parity (std.57600,
   which comes from the file /etc/gettytab, see gettytab(5)). The
   terminal type for this port is dialup. The port is on and is
   insecure---meaning root logins on the port are not allowed. For
   dialin ports like this one, use the ttydX entry.

   It is common practice to use dialup 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 su(1) to become root. If you use
   secure then root can login in directly.

   After making modifications to /etc/ttys, you need to send a hangup
   or HUP signal to the init(8) process:

 # kill -HUP 1

   This forces the init(8) process to reread /etc/ttys. The init
   process will then start getty processes on all on ports. You can
   find out if logins are available for your port by typing

 % ps -ax | grep '[t]tyd1'

   You should see something like:

 747 ??  I      0:00.04 /usr/libexec/getty std.57600 ttyd1

   15.9. How can I connect a dumb terminal to my FreeBSD box?

   If you are using another computer as a terminal into your FreeBSD
   system, get a null modem cable to go between the two serial ports.
   If you are using an actual terminal, see its accompanying
   instructions.

   Then, modify /etc/ttys (see ttys(5)), like above. For example, if
   you are hooking up a WYSE-50 terminal to the fifth serial port,
   use an entry like this:

 ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure

   This example shows that the port on /dev/ttyd4 has a wyse50
   terminal connected at 38400 bps with no parity (std.38400 from
   /etc/gettytab, see gettytab(5)) and root logins are allowed
   (secure).

   15.10. Why can I not run tip or cu?

   On your system, the programs tip(1) and cu(1) are probably
   executable only by uucp and group dialer. You can use the group
   dialer to control who has access to your modem or remote systems.
   Just add yourself to group dialer.

   Alternatively, you can let everyone on your system run tip(1) and
   cu(1) by typing:

 # chmod 4511 /usr/bin/cu
 # chmod 4511 /usr/bin/tip

   15.11. My stock Hayes modem is not supported---what can I do?

   Actually, the man page for tip(1) is out of date. There is a
   generic Hayes dialer already built in. Just use at=hayes in your
   /etc/remote (see remote(5)) file.

   The Hayes driver is not smart enough to recognize some of the
   advanced features of newer modems---messages like BUSY, NO
   DIALTONE, or CONNECT 115200 will just confuse it. You should turn
   those messages off when you use tip(1) (using ATX0&W).

   Also, the dial timeout for tip(1) is 60 seconds. Your modem should
   use something less, or else tip will think there is a
   communication problem. Try ATS7=45&W.

   Actually, as shipped tip(1) does not yet support it fully. The
   solution is to edit the file tipconf.h in the directory
   /usr/src/usr.bin/tip/tip. Obviously you need the source
   distribution to do this.

   Edit the line #define HAYES 0 to #define HAYES 1. Then make and
   make install. Everything works nicely after that.

   15.12. How am I expected to enter these AT commands?

   Make what is called a !S:direct!" entry in your /etc/remote file
   (see remote(5)). For example, if your modem is hooked up to the
   first serial port, /dev/cuaa0, then put in the following line:

 cuaa0:dv=/dev/cuaa0:br#19200:pa=none

   Use the highest bps rate your modem supports in the br capability.
   Then, type tip cuaa0 (see tip(1)) and you will be connected to
   your modem.

   If there is no /dev/cuaa0 on your system, do this:

 # cd /dev
 # sh MAKEDEV cuaa0

   Or use cu as root with the following command:

 # cu -lline -sspeed

   with line being the serial port (e.g. /dev/cuaa0) and speed being
   the speed (e.g.57600). When you are done entering the AT commands
   hit ~. to exit.

   15.13. Why does the <@> sign for the pn capability not work?

   The <@> sign in the phone number capability tells tip to look in
   /etc/phones for a phone number. But the <@> sign is also a special
   character in capability files like /etc/remote. Escape it with a
   backslash:

 pn=\@

   15.14. How can I dial a phone number on the command line?

   Put what is called a !S:generic!" entry in your /etc/remote file
   (see remote(5)). For example:

 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:

   Then you can do something like tip -115200 5551234. If you prefer
   cu(1) over tip(1), use a generic cu entry:

 cu115200|Use cu to dial any number at 115200bps:\
         :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:

   and type cu 5551234 -s 115200.

   15.15. Do I have to type in the bps rate every time I do that?

   Put in an entry for tip1200 or cu1200, but go ahead and use
   whatever bps rate is appropriate with the br capability. tip(1)
   thinks a good default is 1200 bps which is why it looks for a
   tip1200 entry. You do not have to use 1200 bps, though.

   15.16. How can I more easily access a number of hosts through a
   terminal server?

   Rather than waiting until you are connected and typing CONNECT
   host each time, use tip's cm capability. For example, these
   entries in /etc/remote (see remote(5)):

 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:

   will let you type tip pain or tip muffin to connect to the hosts
   pain or muffin; and tip deep13 to get to the terminal server.

   15.17. Can tip try more than one line for each site?

   This is often a problem where a university has several modem lines
   and several thousand students trying to use them...

   Make an entry for your university in /etc/remote (see remote(5))
   and use <\@> for the pn capability:

 big-university:\
         :pn=\@:tc=dialout
 dialout:\
         :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:

   Then, list the phone numbers for the university in /etc/phones
   (see phones(5)):

 big-university 5551111
 big-university 5551112
 big-university 5551113
 big-university 5551114

   tip(1) will try each one in the listed order, then give up. If you
   want to keep retrying, run tip(1) in a while loop.

   15.18. Why do I have to hit CTRL+P twice to send CTRL+P once?

   CTRL+P is the default !S:force!" character, used to tell tip(1)
   that the next character is literal data. You can set the force
   character to any other character with the ~s escape, which means
   !S:set a variable!".

   Type ~sforce=single-char followed by a newline. single-char is any
   single character. If you leave out single-char, then the force
   character is the nul character, which you can get by typing CTRL+2
   or CTRL+SPACE. A pretty good value for single-char is
   SHIFT+CTRL+6, which I have seen only used on some terminal
   servers.

   You can have the force character be whatever you want by
   specifying the following in your $HOME/.tiprc file:

 force=single-char

   15.19. Why is everything I type suddenly in UPPER CASE?

   You must have pressed CTRL+A, tip(1) !S:raise character!",
   specially designed for people with broken caps-lock keys. Use ~s
   as above and set the variable !S:raisechar!" 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.

   Here is a sample .tiprc file perfect for Emacs users who need to
   type CTRL+2 and CTRL+A a lot:

 force=^^
 raisechar=^^

   The ^^ is SHIFT+CTRL+6.

   15.20. How can I do file transfers with tip?

   If you are talking to another Unix system, you can send and
   receive files with ~p (put) and ~t (take). These commands run
   cat(1) and echo(1) on the remote system to accept and send files.
   The syntax is:

 ~p <local-file> [<remote-file>]
 ~t <remote-file> [<local-file>]

   There is no error checking, so you probably should use another
   protocol, like zmodem.

   15.21. How can I run zmodem with tip?

   First, install one of the zmodem programs from the ports
   collection (such as one of the two from the comms category, lrzsz
   or rzsz.

   To receive files, start the sending program on the remote end.
   Then, press enter and type ~C rz (or ~C lrz if you installed
   lrzsz) to begin receiving them locally.

   To send files, start the receiving program on the remote end.
   Then, press enter and type ~C sz files (or ~C lsz files) to send
   them to the remote system.

   15.22. Why does FreeBSD not find my serial ports, even when the
   settings are correct?

   Motherboards and cards with Acer UARTs do not probe properly under
   the FreeBSD sio probe. Obtain a patch from www.lemis.com to fix
   your problem.

     --------------------------------------------------------------

                Chapter 16 "a:YEN||U|!|U 1/4E-a-oDEGYAD

   16.1. NOTDEGNOTAE>>o FreeBSD YENI-a-o,m'<<(swap)-aAAP:!CURn Linux
   |h!H

   16.2. S:Y"IS:UYENu|^3^1B|aeCURO: 1/4AEu{|!!ANOTDEGCURDEG>>o top
   AAaYENU:YENX "O-a-o^3N 3/4lDEGO 3/4D-AAeAUNOTO<<U:CURO:!H

   16.3. NOTDEGNOTAE>>onYENI(NOTAE>>oNOTO) a.out (c)M ELF
   DEGo|aeAE(R)ae|!!H

   16.4. NOTO-a-o, |yNOTO,
   NOTDEGCURDEG>>o.||^3^3o>>o|hCUR-L-|P(R)ae|!-a-oDEGo|aeAE|s|b(c)O?

   16.5.
   NOTDEGNOTAE>>ochmodCUR-L-.|S:iAAU:^2AA,^1^3su^2(symlink)-a-o|s"uAAv!H

   16.6. NOTDEGCURDEG>>o|b FreeBSD 2.2.x
   CURIS:o|-a-o-a(c)YEN>>CURCUR!AunCURJ|W-oU(login names)
   ^3Q"i|bCURKO|rCUR,YENHCURU(c)O!H

   16.7. S:U-`a|bFreeBSDCURUDEGo|aeDOSu{|!P:U:!H

   16.8. |p-aGnS:aFreeBSDCURaaYENoA
   1/2A:P:|"S:U-a-oYENA>>y!AS:U>>YnS:@CURDEG>>o!H

   16.9. NOTDEGCURDEG>>oS:U+-H"`i FreeBSD.org
   NOTUAo:|aS:}-a-o^1qCURlP:lYENo^3-L-^3QDEGh|^CURF(c)O!H

   16.10. S:UYENiYENH|bth,IS:a:"`iCUR@OS:KP:O-a-oFreeBSD+-b,^1!H

   16.11. CURDEG>>oNOTO sup!AS:U,O|p|o"IYENIYEN|!H

   16.12. ^3oOYENi.R-a-oCURpNOToCURHYENsS:@CURDEG>>o!H

   16.13. S:U-`a"IYENI BSD CURp'cAA]^1I(R) *P:U:!H

   16.14. S:A|^3YENo|o-a-o BSD CURp'cAA]^1I(R)
   *YENiYENHAAyS:U"IYENIP:U:!H

   16.15. S:U|bCURaaYENo!BP:l>> 1/4 1/2 *
   3/4ACURW!A+-`.|NOTY"`iCUR@"C,AY
   1/4g|r!BS:TH^3N|r.J!A^3o"C,YENiYENHYENhthAa:NOTd(c)O!H

   16.16. NOTDEGCURDEG>>oS:U,O|b.N,} 1/2n"(R)"(R)' *-a-oAC|a!H

   16.1. NOTDEGNOTAE>>o FreeBSD YENI-a-o,m'<<(swap)-aAAP:!CURn Linux
   |h!H

   FreeBSDP:ENOTONOTYDEG_"O,m'<<-aAAP:!(swap)YENI-a-oCURnLinux|h|OCURw!C|b"AE^1eCURW!A
   "ACUR-L-uM!CYENDn-a-o(R)t^2S:NOTO|b(c)o!AFreeBSD?n.YEN-a-o+-NP:-c-,muLYENI-a-oYENDDEGO
   3/4D-AAeCUR-o(R)e
   +-ACURJ,m'<<-aAAP:!(swap)CURCUR!AYENH"I+-oYENDDEGO
   3/4D-AAeYENiYENHS:oNOTDEG|^3(R)A:^2v-a-o^3Q"IYENI!C|O
   Linux-a-ou|^2CURNOTO+-N,m'<<-aAAP:!(swap)YENI"OS:@NOTDEG,N"MDEGO
   3/4D-AAeDEGYAD-a-o^3I^2 *CURaNOTq!C
   ,uAWAc-a-o"IYENI,m'<<-aAAP:!(swap)!CNOTOCUR@-oO/S:o|^3(R)A:^2v-a-o"IYENIYENDDEGO
   3/4D-AAe-a-oCURaNOTq!C

   uu!G.iCUR@CURe+-FreeBSD?n.YEN-a-o"IYENI,m'<<-aAAP:!(swap)-a-o|P(R)E!AS:AYEN^2>>Y-a`
   .N"`i!AFreeBSD"ACUR-L-.|YENo.N-a-o+-N(c)O|^3-a-o-aF|e^3-L-+-ACURJ,m'<<-aAAP:!(swap)CURCUR!C|p|^1!A
   S:ACUR~CUR-L-.||bCUR@(c)]+-J 3/4KDEG_S:E<<auo^2{!A
   3/4aO"t^2I^3-L-^3QEP:iCURF,m'<<-aAAP:!(swap)CURS:CURCUR!C

   16.2. S:Y"IS:UYENu|^3^1B|aeCURO: 1/4AEu{|!!ANOTDEGCURDEG>>o top
   AAaYENU:YENX "O-a-o^3N 3/4lDEGO 3/4D-AAeAUNOTO<<U:CURO:!H

   A^2^3ae-a-ou-a(R) *NOTO!A(c)O|^3YEN 1/4"IYENI"`i-a-oP:-c-,mDEGO
   3/4D-AAe^3-L-NOTO^3Q(R)o:P:O-a-oDEGO 3/4D-AAe!A YENo|oYEN
   1/4^3QS:A-a-ou{|!(c)OS:QYENI"`i-a-oDEGO
   3/4D-AAe+-N^3Q(R)O:CURss(kernel)YENI"O.i S:@-oI-oD-S:O:"u(disk
   cache)!C|O^3o-oO/DEGO 3/4D-AAe^3Q top(1)  1/4D-DEGONOTDEG
   P:-c-,m-a-o(Inact)!AS:O:"u(Cache)!A YENHCURI  1/2w
   1/2A:DEGI(Buf)!A"At^3d|b|UOCUR-L-|P-a-o|`i,mt^3d 
   1/4E|s,e(R)AE!C^3Q
   1/4E|s(cached)-a-o,e(R)AEYENN-ai"t^2ICUR-L->>YnYENh|s"u,u-oC-a-o-oI-oD-,E,m
   'NYENiYENH+-o"`i,e(R)AE!A|p|^1!AYENiYENH'-L-CURE"t^2I-a-o(R)A:-`a!CA`|O"YENCURS:!Atop(1)
   AAaYENU:YENX,uCURO:-a-o P:-c-,m(Free) DEGO
   3/4D-AAeNOTO|n-a-o!AYENunAAaYENU: YENX"O-a-oECUR-L-NOTO <<D+-`
   -a-oS:C!C

   16.3. NOTDEGNOTAE>>onYENI(NOTAE>>oNOTO) a.out (c)M ELF
   DEGo|aeAE(R)ae|!!H

   nCURF,NNOTDEGCURDEG>>oFreebsd"IYENI ELF (R)ae|!!AS:A|^3YEN^2
   nYENy>>{ANCUR@CURUCURT-oO/|bYENO/<<e Unix "t^2ICURCUR^3I^3Q
   1/4s-axA^3YENI"`i-a-oDEGo|aeAE(R)ae|!!G

     Note: |b FreeBSD 3.x CURS:<<e!AFreeBSD "IYENI a.out (R)ae|!!C

     * a.out(5)

       ^3oNOTO^3I|!A|PNOTOCUR]NOTO !S:^3I"aa<<NOT!"
       -a-oUnixYENO/-a-oAE (R)ae|!!C^3o-oO/(R)ae|!-a-oAE(R)
       *"IYENICUR@-oO/uuYENB-oo+-K-a-oAEAY!A|P(R)E!A|nAHuUCUR@
       OAA]^3N 1/4AE|rYENI"O?eAN(R)ae|!!C(DEGN|O a.out(5)
       |^3S:o|h,O^2O-a-o>>! (c)u)!CYEN|YEN]S:t|^3CURTO,`DEGI!G .text
       .data CURI .bss YEN[CURWCUR@O^2AA,^1-ai CURI|r|e-ai!C

     * COFF

       SVR3YENO/-a-oAE(R)ae|!!CAEAYYEN]S:tCURFCUR@O,`DEGI-ai!A(c)OYENHYENiYENH"a^3AECURn
       .text .data .bss AU|h-a-o,`DEGI!C

     * ELF

       ELFNOTDEG COFF (R)ae|!-a-o<<aA:~-aI!AYENDn-a-o-S 1/4xNOTDEG
       YENiYENH"a|^3 1/2AE
       1/4AE,`DEGINOTq!A"AYENiYENH"IYENI32-bits(c)INOTO64-bits-a-o
       1/4AEE!C YENDn-a-o-EAINOTDEG!G ELF
       (R)ae|!NOTO|b"CO"t^2ICURCURYENu .||^3CUR@-oO/ ABI
       -a-oDEG^2^3]NOTDEG<<eAD^3Q^3]pYENX"O-a-o!C|yNOTO!A|b"AE^1eCURW!A^3oO
       DEG^2^3]?u-a-oA-:AD-!C|]NOTDEG!AAa"I|bDEGOYENI-a-o SYSV
       YEN@NOTE,I!ACUR]|U:CURO:|^3 SVR4!A Solaris (c)M SCO CURT-oO/
       ABI!C

       A:P:uu!GABI(Application Binary Interface)!C|p-aGCUR@(c)wnA
       1/2A:P:!A 'NYENsYEN| A^3YENIu{|!CURGP:i|`iCURP:+- |nCURF!C
       ABI^3Quo
       (R)iYENX"O-a-oYENI.N!ANOTONOTDEGCURF<<P"I|bNOTU|PCPU(c)Ouo(R)iYENX"O-a-oA^3YENIu{|!!A-`aDEG-:
       |bCUR-L-|P-a-o"t^2ICURW!AS:@"`iCURGCUR,AE(Binary
       Code)NOTU(R)e!CCURnCURe>>!!A Sun (c)O'-L-YENX-a-o Solaris ABI
       !A<<OAODEGo|aeAE-`aDEG-:|bNOTU|P CPU -a-o Solaris
       "t^2ICURWDEGo|ae!AYENtCUR@O"OCURlNOTO Windows "t^2I!C|PA:Y(c)o
       Intel x86 -a(c)YEN>>-a-oDEGo|aeAE-`aDEG-:|UYENN-a-o|bWindows
       9x/meCURIWindows NT/2k/XPCURS:P:!DEGo|ae!C

       FreeBSD'-L-"NCUR@OCUR
       1/2YENIu{|!+-Nu{|!(c)O>>Y-a-oABI,eDEGT-OCURW!AAC,|^1,OuU
       YENh,N"M^3oODEGYAD!C 1/2D-DEGN|O brandelf(1)
       YENH"u+-oS:o|h,eDEGT!Ci

   FreeBSD "O|U !S:P:C,^2I!" -a-oDEG}Ac,!C|bP:C,^2ICURW!AFreeBSD^3-L-
   "IYENI a.out(5) (R)ae|!!A^3o 1/4E-a-oS:TH^3N|b|n'XYENN-a-o BSD
   ^3-L-^3QAO(c)uNOTOYENi 3/4a-a-o!C
   Ao:uM!A|bFreeBSDCURWYENiYENH<<O/YENssYENHCURIYEN?
   1/2T-a-oDEGo|ae`iYENI ELF (R)ae|!AE(R) *(YEN]S:t(R)O:CURss)!CuM|O,
   FreeBSD|bCUR@P:}(c)lCURI^1i+-N^1w^3](R)ae|!A`a'<<NOTDEG ELF!A
   NOTDEGCURDEG>>o(c)O!H.iLinuxP:}(c)luhW-a-oA`a'<<|U: ELF
   (R)ae|!(R)E!A "A<<DNOTONOTDEGCURFnDEGkA-: a.out
   (R)ae|!!CNOTUCURI-a-o!A^3oNOTO|] NOTDEGCURS:<<e
   Linux-a-o|@"E"c,|!(R)w(shared libraries)+-A:YENIYENH,oAAD-ai(R)ae
   (jump-table)NOTDEGDEGoA|-a-oS:TH^3NYENh^3]p!C^3oNOTOCUR@-oO/AAyuo(R)i-aI.P"`iS:xAZ!AYENB<<D+-`
   Ao/YENH"IYENI!ACUR-L-"a"NOTDEG-:
   1/4u(c)E-a-oCURe-ak!CNOTJuM!ACURw,g|s|b-a-o ELF
   CURu"a'-L-"NCURF|@"E"c,|!(R)w(shared libraries)-a-o,N "MCURe(R)
   *!A|OYENB!A"-oNOTYDEG_"ONOTOO !S:<<e
   1/2A-a-oCURe-ak!"!A|]|^1!A(c)O>>Y
   -a-oA`a'<<YENN>>u'NYENi+-u"u:|]|OA`a'<<!C

   |bFreeBSD-a-o-aNOT-apCURCUR!AS:UI-a-o|@"E"c,|!(R)w(shared
   libraries) 3/4-:"i(c)M SunOS
   -a-o<<NOT|!<<D+-`NOTU-an!AYENB(c)o:(c)o"IYENI!CuM|O!A +-q 3.0
   P:}(c)l!AFreeBSD YEN?|!+-N ELF S:iNOTDEG^1w^3](R)ae|!!C
   Ao:uM!Aa.out (R)ae|!"IAA|pYENH(c)^1-e-a-o|n!A|yNOTO!AS:UI 
   1/2sA:P:CURu"a-a-o 1/4P: 1/4g-aI!AGNU
   -a-o|"u!AYENLICURCURCURiCURF^1i a.out
   (R)ae|!-a-oCURa:'(c)>>P-ouAA@!C|b^3o-oO/-aNOT-apCURU!A-c-"I
   S:UIYEN^2P:.|U|ae-ouAA@YENtCUR@YEN-:-a(c)YEN>>-a-o compiler (c)M
   linker!ACUR]"I+-oS:UIuL-ak +-q^3I.s-a-o GNU
   uo(R)i|"-aGCURCURAo+-o|n^3B!C|^1YEN~!A^1i ISO-C++ -a-o>>Y"D!ACUR
   *"a:NOTO
   <<O/-ocCURl(constructors)(c)M,N-ocCURl(destructors)!ACUR]+-aDEGEYEN
   1/4"O-a(c)YEN>>CURCUR^1i ELF -a-o`iYENICURa:'(c)!C

   16.4. NOTO-a-o, |yNOTO,
   NOTDEGCURDEG>>o.||^3^3o>>o|hCUR-L-|P(R)ae|!-a-oDEGo|aeAE|s|b(c)O?

   |bP:A.t|O>>>>>>.-a-o^1LYENh!AP:E|^3A^2(R)-a-ouwAAe|s|b!C|O|]NOTDEGuwAAeA^2(R)!A.iuMCUR]
   YENu-`aDEGo|aeCURp|OA^2^3ae-a-o"t^2I!Ca.out
   (R)ae|!NOTODEGo(c)o"-oO(R)EYENN(c)O>>Yn!A|O^3Q^3D-^3y
   YENX"O-a-o("O|p^1^3PDP-11)!C|b^3oCURS:<<a!A^3\|hCURH,OuU+-N Unix
   ^2 3/4'O"`i"a:YENLYENYENx (R)E!AYENLICUR]<<O-dCURF a.out
   (R)ae|!-a-oDEGo|aeAE!C|]NOTDEG!A^3o^1i|'A-a-o Motorola 68k!A VAXen
   CURS:Ath-a-o"t^2ICURw,g"NOTDEG-:"IYENICURF!C

   uM|O!ACURH"ACUR-L-.|-o!"NOT(c)o^2{-aNOT!CCUR@"C,Ao(c)u-a-ouwAAeCURuu{(R)v.Q"`iCURF!A|p-aG-`a
   AAy^3nAAe|h^3B^2zCUR@"C,"AE!A"-o CPU -a-o^1q'^1AAe
   1/4AE'N-`aCURO:CUR@AI!A"AYENBP:]+-oS:oS:O:!Cn
   |b^3o-oO/.s|!-a-ouwAAeCURWCURuS:@(^2{|b-oUNOTDEGRISC)!Aa.out
   ^3o-oO/(R)ae|!'NCUR-L-|X 3/4ACURF!CDEGo(c)o^3o
   1/4E-a-o^2{^1e(c)O>>Y!AS:o|h-a-oDEGo|aeAE(R)ae|!^3Quo(R)iYENX
   "O!AYENH'-L-"NCURnA^2^3aeYENB"u:"`i^3\|h"i-a-o a.out (R)ae|!
   S:o|n-a-o(R)A:-`a!CCURnCURe^1^3NOTO COFF!A
   ECOFF!ACURwCURICUR@"C,,uCUR-L-NOTDEGCURH(c)O(c)P-a
   3/4-a-o(R)ae|!-E-E^3Q^3D-^3y
   YENX"O!C|yNOTO!A^3o"C,(R)ae|!^3-L-CURw^1F"`i|U|U-a-o.YEN!A-a
   1/2"`i|^3CUR@CURN ELF -a-oYENX^2{!C

   |^1YEN~!A.iu{|!-a-oAAe?nP:V"OP:VCURj!A|O-oI-oD--aAAP:!(c)MYENDDEGO
   3/4D-AAeNOTU^1i"O>>!^3-L-,u CURp(R)E!A|@"E"c,|!(R)w(shared
   libraries)-a-oAE[(c)A^3Quo(R)iYENX"OCURF!C|b^3o|P(R)E!A ueAADEGO
   3/4D-AAe"t^2I(VM
   System)CUR]AAU:+-oP:V"OP:V-oeYEN(c)!C.i"CCUR@-oO/P:i"B^3-L-|b
   a.out(R)ae|!CURW^3Quo(R)iYENX"O(R)E!AYEN|-a-oYENiYENI(c)ECUR]|P(R)EAAU:
   +-oP:V"OP:VS:C!CYENtYEN~!ACURHIAUS:AE+-aeu{|!-`a|bDEGo|ae'AP:!DEGE-oA,u:CURJ!A(c)INOTO+-NCURw,g
   DEGo|ae^1LYENB"S|^3YENI-a-o-a`i(c)lCURAEu{|!
   1/2XYENa+-o!AAC,YENH,`NOTUS:o|h-a-oDEGO 3/4D-!Cu{|!>>y"YEN|b
   ^3oO(R)E'ACUR]<<K+-oS:o-oeYEN(c)!ACURHICUR]S:AE+-ae|b main
   CURS:<<e|UDEGE-a-oDEGo|aeS:o|h-a-o-aF|e!C
   |]|^1!A^3\|hAcAo/YENBYENtCURH^1A:NOTDEGAE[CURi-a-oS:THYEN(c)^3QYENI|b
   a.out (R)ae|!CURWYENh,N"M^3o"C,DEGYAD!C|yNOTO!AYENN(c)o a.out
   (R)ae|!
   YENyCURN-a-o"i!An,N"M^3o"C,DEGYADYEN^2>>YYENIYENXS:o|h-a-oYENN>>uCURI(R)EP:!|"YEN>>!A"AAAyu{|!
   -a-o 1/2AEAo/<< *CURjNOTDEG'-L-CURE!C|O ELF
   (R)ae|!YENiYENHCUR@A|,N"M^3oCUR@ CURADEGYAD!C|yNOTO!An+-N
   3/4aO"t^2I+-q(R)UYEN>>A`a'<<^1LYENh!A+-N.||^3CUR-L-uu-a-oDEG}uh'A!A|]
   |^1!A ELF(R)ae|!+-N.||^3CUR@DEG}CURl>>P a.out "A|s!C

   uM|O!AAHuU(R)EP:!-a-o^1LYENh!AFreeBSD-a-o build tools
   -otCURAE|"YEN|ae-a-o"aO CURa: 1/2u(CUR *"a:NOTO^2OA:P:
   3/4^1(c)M,u:CURJ 3/4^1)!CFreeBSD^3o+-o/,oYEN[P:iCURF|@"E"c,|!(R)w
   (shared libraries)"A
   *YEN?CURFCUR@"C,?u>>~!C|O`i"Ouo(R)i^3o"C,u{|!-a-o GNU |"u
   <<hNOTDEGCURF|]A^3^2{-ap!A<<
   1/4gCURF^3o"C,u{|!!AYENHS:oA^2^3ae-a-oCURe|!^1i,oYENYENx 1/2sA:P:
   (building cross compilers)!AYENHCURI|h-oO/(R)ae|! (plugging in
   different formats) S:@YENXCURFCURa:'(c)!C^3\|hCURH.QS:@YENXYENH
   FreeBSD NOTDEGYENO/-a-oYENYENx-a-o,oYENYENx 1/2sA:P:
   3/4^1!C|yCUR-L-(c)--a-oNOTO!AFreeBSD -a-o as (c)M ld CUR-L--`aS:@
   ^3oP:uCURuS:@!C.s-a-o GNU CURu"au{|!YEN[CURJCURF,oYENYENx 1/2sA:P:
   (Cross Compiler)!A ELF(R)ae|!CURa:'(c)!A|@"E"c,|!(R)w(shared
   libraries)!A C++ -a-oAXYENR... uYENuYEN!C|^1YEN~!A^3\|h
   1/4tDEGOYENH ELF (R)ae|! uo|ae"a:^2-L-<<~!A|p-aG^3o"C,-aF|e-`a|b
   FreeBSD CURWDEGo|ae-a-o,U:.iuMNOTO^3I|n-a-o!CNOTJuM!A
   -`aDEG-:DEGo|ae ELF
   (R)ae|!-a-oDEGo|aeAECURF!ANOTDEGCURDEG>>oAUP:.n a.out
   (c)O!HYEN|CURw,gNOTOCUR@CURC,<<<<<<<<|N"o-a-oDEG"CURF!A|b-oU:CURO
   -oE(c)
   3/4-a-o(c)^A:m^3o>>o|h|~CURS:<<a!A,ONOTOAAyYEN||b-a-a^3o-aI"U-a-o-o|aCURW|n|nYENd-(R)S:-a-o(R)EO
   CURF!C

   ELF (R)ae|!CURn a.out "a|^3S:o"}|n-a-o(R)i^2{-`aCURO!A"A
   YENB|b(c)^3 1/4h"t^2ICURCUR"a|^3S:o|h-a-oYENiAX(R)i(c)E!CELF
   CURu"au{|! S:o(R)e(c)o:^3Q-ouAA@!AYENB'-L-"N,oYENYENx
   1/2sA:P:-a-oCURa:'(c)!A^3oCUR@AI^1i<<U:|hCURH"O>>!NOTO<<U:<<n
   -a-o!CELF (R)ae|!YENi-`aCURn a.out -oCCUR@AI!A|yNOTO"a:(R)t^2S:<<D
   +-`Ao/'uP:qYENX"O!C^3o"a-aIP:!AU|^3^3\|h^2O,`CURW-a-oCUR-L-|P!ACURnCURe>>!CURAP:^1iA^3-a-oCURe|!!A
   u{|!
   1/2X-a`i(c)lCURAE-a-oCURe-ak...uYENuYEN!C^3o"C,"ACUR-L-NOTO<<U:<<n!A|yNOTO!A"a-aI'NNOTOCUR-L-|P!C
   YENH<<a!AGENERIC (R)O:CURss(kernel)+-N.|^2 3/4DEG-L-^1i a.out
   (R)ae|!!C.iCUR-L-|b|^3DEGo|aeP:C,^2I a.out u{|!-a-oP:.n(R)E!A
   +-N.|+-q(R)O:CURss(kernel)CURCUR^2 3/4DEG-L-!C

   16.5.
   NOTDEGNOTAE>>ochmodCUR-L-.|S:iAAU:^2AA,^1^3su^2(symlink)-a-o|s"uAAv!H

   Symlinks YEN>>""A"S|^3|s"uAAv!A|P(R)E!A|b^1w^3]-a-o-aNOT-apCURU!A
   chmod(1) +-NCUR-L-.|,oAHuU symlinks YENhS:i<<KYENO/ 1/4D-AE(R)
   *-a-o|s"uAAv!C|]|^1!A |p-aGS:A|^3CUR@OAE(R) *
   foo!A|P(R)E!A|^3CUR@O symlink bar <<u:|V^3oOAE(R)
   *!AYENHCURU^3oO(c)RYENO+-NYENA>>..||"YEN\ -a-o^3QDEGo|ae!C

 % chmod g-w bar

   uM|O!A|b foo CURW-a-o|s"uAAv+-NCUR-L-.|^3QS:i AAU:!C

   S:AYEN^2>>Y"IYENI -H (c)INOTO+-N -L >>P -R
   ?iP:uCUR@DEG_"IYENI!ADEGN|O chmod(1) YENHCURI symlink(7)
   YENH"u+-oS:o|h-a-o,eDEGT!C

     Warning: "IYENI?iP:u -R .|AAy chmod(1) YENH >>
     1/4DEGj(RECURSIVE) -a-oCURe|!CURuS:@!C.iS:AS:a chmod(1)
     YENI|bYENO/?y(c)INOTO^3su^2"`iYENO/?y-a-o^2AA,^1^3su^2(R)ES:onCURpCURss!C
     |p-aGS:AnS:iAAU:CUR@O^2AA,^1^3su^2DEGN|O"`i-a-oYENO/?yCURS:|s"uAAv
     chmod(1) !A YENB-a`.NCUR-L-nYEN[CURWYENo|o?iP:u!A"AYENB|b
     symlink -a-ou^2S:AYEN[CURW+- * 1/2u (/)!CA|"O"O>>!!A|p-aG foo
     ^3su^2"`iYENO/?y bar!A |OS:AnS:oS:i foo (^1e>>UCURWNOTO
     bar)!A"-o'N"IYENI!G

 % chmod 555 foo/

     u^2S:A-a-o+- * 1/2u.|"I+-o chmod(1) S:iAAU: foo
     (c)O<<u:|V-a-oYENO/?y bar -a-oAAv!C

   16.6. NOTDEGCURDEG>>o|b FreeBSD 2.2.x
   CURIS:o|-a-o-a(c)YEN>>CURCUR!AunCURJ|W-oU(login names)
   ^3Q"i|bCURKO|rCUR,YENHCURU(c)O!H

   S:AYENi-`a>>{NOTDEG *S:i UT_NAMESIZE <<a|b<<.s 1/2sA:P: 3/4aO
   "t^2INOTO<<U:(R)e(c)o:-a-o"AE!C|OYENB|b^3oCURS:<<a!A"CYENo"AE^3-L-YENiYENH^1BS:@-a-o<<U:|n!CCUR-L-(c)--a-oNOTO!A
   |^3^3\|h-a-ou{|!(c)MCURu"a(YEN]S:t"t^2ICURu"a)S:a 1/4AE|r
   1/4g|-o|bu{|!,IAY("A<<DA`NOTO 8 (c)I
   9!A|^3(R)EYENi-`aNOTOYENj(c)C,-a-o 15 (c)I
   20)!C^3oCUR-L-P:EP:ENOTO.|+-N
   S:A-a-o"t^2IDEGO?yAES:EAa|OCURw("O|U(c)oAAU:DEGE-ao/<<
   *(c)M(c)T(c)w-ao/<< *DEGO?y-a-o(R)t^2S:)!A|P(R)E CUR].|-}Aa Sun
   -a-o NIS Client
   -a-o^1BS:@!C|P(R)E!A(c)M"a:YENL-a-oUnix"t^2ICURS:P:!CUR]
   |^3YENi-`a.|^2-L-YENIYEN 1/4-a 3/4-a-oDEGYAD!C

   |bFreeBSD 3.0 CURICURS:<<a-a-o-a(c)YEN>>!A+-b,^1-a-o^3ICURj-ao/<<
   * 1/4WYEN["`i16O|rCUR,!A |P(R)E!A"-o"C,+-N-ao/<< *
   1/4g|-o-a-ou{|!CUR]^3QS:a:YENX"O"AS:@CURF 3/4A.i-a-o
   *YEN?!CYEN?|]NOTDEG 1/4vAAT "t^2I-a-o 1/2d^3o<<U: 1/4s!A(c)OYENH-a
   1/2"`i3.0-a(c)CURS:<<aCUR~-oaCURjP *YEN?S:^1|"!C

   |p-aGS:A|^3|U<<H|bYENXDEGYAD-a-o(R)E<<a-`a|U|ae,N"M!AS:AYENiYENHS:QYENICURU+--a-oCURe-akAAy
   ,u|'A-a-o-a(c)YEN>>CURa:'(c),u-ao/-a-o+-b,^1!C-oYENy!A *S:i
   /usr/include/utmp.h CURCUR-a-oUT_NAMESIZE!C uM<<a!AS:AYEN^2P:.S:a
   /usr/include/sys/param.h CURCUR-a-o MAXLOGNAME S:i|",o UT_NAMESIZE
   NOTU|P!C^3I<<a!A|p-aGS:ANOTO+-q`i(c)lu{ |!<<O/YENss"t^2I,
   S:OS:NCURF /usr/include "C|,^3-L-.|^3QS:o.s!C  *S:i /usr/src/..
   CURCUR 3/4A.i-a-oAE(R) *!C

   16.7. S:U-`a|bFreeBSDCURUDEGo|aeDOSu{|!P:U:!H

   NOTO-a-o!A|U3.0-a(c)DEG_S:AYENiYENH"IYENIBSDI-a-o doscmd DOS 
   1/4OAA 3/4^1!A|p-aGS:A^1i^3oO-aF|e |^3?^3
   1/2`i!A(c)INOTO.QYEN[CURJuo(R)i|ae|C!A
   1/2D-+-HCUR@<<E^1qCURlP:lYENo"`i FreeBSD-emulation P:l>> 1/4 1/2 *
   3/4A !C

   ^1i(c)o3.0CURS:<<e-a-o"t^2I!A|b ports
   CURCUR|^3CUR@(R)M^3nAAeYENiYENH 1/4Oeo: 8088!A"A'-L-
   "N"NOTDEG-:-a-oBIOSCURCURA_-aADEGEYENHDEGo|aeDOSCURaa|r
   1/4O|!-a-ou{|!!A^3o(R)M^3nAAeYENsDEGu
   pcemu!A|P(R)E!A^1B|aeYEN|P:.n X Windows(YENNXFree86'-L-"N)!C

   16.8. |p-aGnS:aFreeBSDCURaaYENoA
   1/2A:P:|"S:U-a-oYENA>>y!AS:U>>YnS:@CURDEG>>o!H

   DEGN 3/4\FreeBSDCURaaYENoCURCUR-a-o A 1/2A:P:+-`"-L-DEGYu-a!C

   16.9. NOTDEGCURDEG>>oS:U+-H"`i FreeBSD.org
   NOTUAo:|aS:}-a-o^1qCURlP:lYENo^3-L-^3QDEGh|^CURF(c)O!H

   FreeBSD.org
   -a-oP:lYENo"t^2I^1i(c)oP:i"O-a-oP:lYENo+-A:"uA:Y(R)ae-a-oAENOTd!A"AYENBDEGh|^
   (c)O|^3^3](c)wCUR-L-YEN? 1/2T!A(c)INOTO
   1/4c,|b-a-o(c)US:-L-P:lYENo!CS:A-a-oP:lYENo^3QDEGh|^YENi-`aNOTO|]NOTDEGCURU|C
   `i|](c)OCURTHDEG_!G

     * ^3o<<E^1qCURlP:lYENo"O|UCURw-a
       3/4-a-o(c)US:-L-P:lYENoDEGIDEG`i(c)INOTOIPCURCUR!C

       FreeBSDP:lYENo|o/-aA 3/4^1+-N(c)Uu'+-u|NOTCURw-a
       3/4-a-o(c)US:-L-P:lYENo"O. 1/2-a-o^1qCURlP:lYENo!C
       |p-aG'-L-"NS:A-oo,o-aADEGE-a-oCUR
       1/2YENq(c)INOTO-ooDEG`iCURCUR|^3^2-L-YENI^1L(c)US:-L-P:lYENo(c)INOTO|^3(c)US:-L-
       P:lYENoA`a 1/4 1/2-,!A
       1/2D-S:A'<<CUR@O-aADEGE'-L-"N-aI!A(c)INOTODEG(R)-U:(c)n+-o!C

     * ^1qCURlP:lYENo-a-oYEN>>CURaaP:E|^3HTML!C

       P:lYENoA^3,OCURw-ACURaa|r(R)ae|!uoDEGe!A
       1/2D-^3](c)wS:A-a-o^1qCURlP:lYENo^3nAAeDEGeYENX-ACURaa
       |r(R)ae|!!C

     * FreeBSD-a-oP:lYENo^3B^2zu{|!uL-akYENNIPCURINOTdDEGeYENoYEND
       3/4-:-a-oIP!C

       ^3],m DNS CURINOTdNOTO+-u"u:CUR@YENxYEND 3/4-:P:lYENo-a-oCUR@O
       1/4D-.C,n"D!A 1/2D-NOTDEG+-z-a-oP:lYENo YEND 3/4-:^3],m DNS
       CURINOTd!C^3\|h'-L-"N(R)a(R)x-oo,o-aADEGE (DSL!Acable!Adialup
       uYEN) -a-oCUR 1/2YENq"ACUR-L-'-L-"N^3o
       1/4E-a-o-aADEGE!C|b^3o-oO/+-!-apCURU!A
       1/2D-^3z^1L-oo,o-aADEGE'-L-"N-aI-a-o P:lYENo|o/-aA
       3/4^1DEGeYENX+-z-a-o^1qCURlP:lYENo!C

     * |b SMTP "IYENI EHLO/HELO (c)RYENO(R)E(c)Ou^1CUR(c)-a-o
       hostname uL-ak^3Q,N-aR"`i CUR@O IP |`i,m!C

       |bP:lYENo^3Q+-u"u:YENH<<e!ACUR@OYENRCURA|X(R)ae!AYENBYENi^3Q,N-aR-a-oYEND
       3/4-:|W-oU|b SMTP "o(c)w-a-o^1i
       1/2ICURCURNOTOYEN^2n-a-o!C|p-aGS:A"S|^3|b DNS |o/-aA
       3/4^1CURCURunDEGOS:A -a-oYEND 3/4-:|W-oU!A
       1/2D-^3z^1L-oo,o-aADEGE'-L-"N-aI-a-oP:lYENo|o/-aA
       3/4^1DEGeYENX+-z-a-o^1qCURlP:l YENo!C

     * S:A-a-oDEGT(R)S:CURCURS:"+-auUCUR@O message ID YENH
       !S:localhost!" |r|eu^2S:o!C

       NOTY"C,P:lYENo^3nAAe^2-L-YENINOTY"C,CUR-L-YEN? 1/2T-a-o
       message ID!A^3o+-NCUR-L-^3Q+-u"u:!C
       S:AYEN^2>>YS:oS:i^3](c)wAAyS:A-a-oP:lYENo^3nAAe^2-L-YENIYEN?
       1/2T-a-o message ID!A|p-aG^3ouL -ak,N"M!A|O
       1/4{>>!-aAS:A-a-oP:lYENo^3nAAeS:@-aIS:o.su{|!YENH^3B^2z^3oODEGYAD!C

   16.10. S:UYENiYENH|bth,IS:a:"`iCUR@OS:KP:O-a-oFreeBSD+-b,^1!H

   FreeBSD-a-o|o/-aA
   3/4^1YEN>>"CUR-L-'-L-"NYENo|o^1iYEN~-a-o-aADEGE!A"a:YENL-a-o^3ae|`iCURCUR!A
   |^3CURH'-L-"NP:}(c)n-a-o Unix
   "t^2I-aADEGE!C"a:CURCUR|^3"C,YENi-`an|NOT"u"C,^3\P:OYENI!C

   Arbornet, Inc!A CUR]^3Q-oUNOTDEG M-Net!A|U 1983
   |~DEG_'NP:}(c)l'-L-"N Unix "t^2I-aADEGE!CCUR@P:}(c)l!A YENLI"IYENI
   Altos "ADEGo|ae System III!CYENLI|b 1991 |~A`a'<<"t^2I|"NOTDEG
   BSD/OS!C|b 2000 |~CUR>>CURe!AYENLI|A<< *S:o'<<|"NOTDEG
   FreeBSD!CM-Net -`aAAy"I YENI-aI^3z^1L SSH CURI telnet ^3s
   1/2u"`iYEND 3/4-:!A"A'-L-"NS:^1 3/4a-a-o FreeBSD ^3nAAeYENH
   "N"IYENI!CuM|O!AM-Net
   S:@NOTDEGCUR@O<<DNOTOS:Q^2OA'^1B|ae!A|s"uAAvYENu(c)o|"u(c)M
   AUS:U-aI!AM-Net CUR]'-L-"N BBS "t^2I(c)M-oo,o^2aCURN-aADEGE!C

   Grex '-L-"NCURF<<D+-` Ath|u: M-Net -a-o-aADEGE!AYEN]NOTACURF BBS
   "t^2I(c)M-oo,o^2aCURN!CuM|O!A 3/4-: 3/4^1NOTO"IYENI Sun
   4M!A"ADEGo|ae SunOS!C

   16.11. CURDEG>>oNOTO sup!AS:U,O|p|o"IYENIYEN|!H

   SUP -a-o.N<<a:NOTO Software Update Protocol!AYENN CMU uo(R)i!A
   YENI"O-ou<<u
   3/4aOuo(R)i-a-o|P"B!CS:UIS:QYENIYEN|<<O<<u>>.-oY-a-o-,YENx(c)M`i(c)l-,YENxCURS:P:!
   -a-o|P"BCURuS:@!C

   uM|O!ASUP |bAW 1/4e-a-o"IYENICURW"ACUR-L-CUROCURIu
   1/2!A|P(R)E!AYENO/<<eCUR]CUR-L-|A"IYENICURF!C
   YENO/<<e<<O/A:^3-ou<<u`i(c)l 1/2X|P"BS:o.s-a-oCURe-akNOTO CVSup!C

   16.12. ^3oOYENi.R-a-oCURpNOToCURHYENsS:@CURDEG>>o!H

   |u:YENG!AYENL"A"S|^3CUR@OYEN?|!-a-o|W|r!A(c)hYENB'N-oU"a:NOTDEG
   !S:BSD CURp'cAA]!"
   S:a!C|p-aGS:ADEGo.Nn"IYENICUR@O|W|r!C"-o'NYENsYENL
   !S:CURpDEGE-a<<(beastie)!" S:a!Cuu!G!S:beastie!" |bAA-auCURW,o
   !S:BSD!" <<U:+-u-an!C

   S:AYENiYENH|bBSDCURp'cAA]-a-o YENDP: CURW"u+-oS:o|h-a-o,eDEGT!C

   16.13. S:U-`a"IYENI BSD CURp'cAA]^1I(R) *P:U:!H

   CUR]^3\S:a!AS:UCUR]CUR-L- 1/2T(c)w!CBSDCURp'cAA]^1I(R)
   *-a-o-a(c)AAvNOTOA:Y(c)oDEG".^2-o,A:NOT(R)aeA:o+-D-.|-a-o Marshall
   Kirk McKusick (c)O
   3/4O:|^3!CS:AYENiYENH,OuUYENhNOTdNOTY-ooP:Ao:(c)oBSDCURp'cAA]"v^1^3
   YENH"u+-oS:o,O^2O-a-o"IYENI^2O,`!C

   A`|O"YENCURS:!A|p-aGS:A-A-oeNOTDEGCURF|UCURv.QnAA^2
   1/2`a!A"-o>>o!AS:AYENiYENH|UYENN-a-o"IYENI"v^1^3!C|p-aGS:ANOTOOCURH"IYENI!AYENun+-!-ap
   3/4A.i!AA^3,O^3-L-.|^3Q^3\YENi!C
   |p-aGS:A.Q|bDEGO.~CURW"IYENI!A<<hS:AYEN^2>>YApA'A:NOT(R)aeA:o+-D-.|-a-o
   Kirk McKusick YENH"u+-o^3\YENi!C
   |p-aGS:A>>YnS:oP:iCUR@"B,O^2O-a-o,eDEGT!A 1/2D-DEGN|O
   BSDCURp'cAA]-a-o-oP:!C

   16.14. S:A|^3YENo|o-a-o BSD CURp'cAA]^1I(R)
   *YENiYENHAAyS:U"IYENIP:U:!H

   S:AYENiYENH|b /usr/share/examples/BSD_daemon/ S:a:"`i Xfig CURI
   eps "a-oO/(R)ae|!-a-o^1IAE!C

   16.15. S:U|bCURaaYENo!BP:l>> 1/4 1/2 *
   3/4ACURW!A+-`.|NOTY"`iCUR@"C,AY
   1/4g|r!BS:TH^3N|r.J!A^3o"C,YENiYENHYENhthAa:NOTd(c)O!H

   1/2D-DEGN 3/4\ FreeBSD |r.J-ai!C

   16.16. NOTDEGCURDEG>>oS:U,O|b.N,} 1/2n"(R)"(R)' *-a-oAC|a!H

   ^3Iuu^3Iuu-a-ou-a(R)
   *NOTO!G!yCUR-L-YENI|b.N!z!Cuy.L-ao/CUR@AI-a-ou-a(R)
   *NOTO!G!yAo:uMS:A|^3-`aCURO|UCURvYENh<<O/^3yCUR@(R)y,}
   1/2n"(R)"(R)' *!A|yNOTO!A
   ^3oCUR-L-YENN-ai|]NOTDEGS:ACUR-L-^3ssAAw^2{|b^3oO"(R)'
   *-a-oAC|a!A'NnCURCURCURiYENL-a-o<<O/?v!C!z^3oOCURn^3e-a-o.N<<a:NOTO!A
   S:ACUR-L->>YnYENh-aS: 1/2 *"CCUR@O^2OP:u-S
   1/4x!AYENu|]NOTDEGS:A|^3?`i-akYENhS:@YEN|!C NOTY"C,CURH-a-ouu 1/2
   *NOTO!G!yAo/u-a-ou{<< *!A>>PAAU:CURAE-a-o
   1/2AEAo/(c)ENOTO|"CURICURn!z!C

   S:o-ao/YENB,uS:^1 3/4a-a-ou-a(R) *NOTO!A|b,g^1L-ao/(R)EP:!-aS: 1/2
   *Ao:(c)oNOTOS:_,O+-N sleep(1) -a-oNOTiDEGN 1/4AE^2
   3/4DEG-L-!APoul-Henning Kamp <phk@FreeBSD.org>uo-aiCURFCUR@
   1/2g-ao/ 1/2 * !S: |b<<C>>A-o|aCURW-a-o,} 1/2n"(R)"(R)'
   *(YENo|oAC|a-a-o)...!"!CYENHCURU!AP:E-oKn,O<<hCURaa^3^1^3!CURACUR-o(R)e!G

  !S:CURDEG>>oNOTOAo:(c)o^3oO,} 1/2n"(R)"(R)' *?!" ^3!CURA-a-oCURH^3o 1/4E-a-o,ssDEGYS:U!C                                
                                                                                                                        
  ^3oNOTOCUR@O<<D+-`-ao/>>.-a-oNOTG"AE!AS:_<<h'NNOTOCUR@OYENj|N-a-oNOTG"AE!C|yNOTO"AE^1eCURW!A                          
  ^3oONOTG"AE<<D+-`-a-ouu!CC!P?O'uNOT`i-S!P(c)NOT-a-:'E(C. Northcote Parkinson) |b 1960 |~YENN-a`i'A                    
  1/4gCURFCUR@YEN>>(R)N!A(R)N|WNOTDEG !S:Parkinson's Law(CURCURCURaa(R)N|W!GCURE(c)x|^3^1D!D-                           
  1/4EAASCURWYENqCURss-oACURS:(c)NOT-a-:'E(c)w<<ss)!" !A^3oYEN>>(R)NYEN]S:tCURF<<U:|h"a|^3"o"-L--a-oDEGE-oA-oTH^2z      
  3/4C,!C                                                                                                               
                                                                                                                        
  [CURTHzCUR@AI|b^3oYEN>>(R)NCURW-a-ouu 1/2 *]                                                                          
                                                                                                                        
  |b^3oO^3Q+-^2CURJ,} 1/2n"(R)"(R)' *(R)                                                                                
  *-a-o-S(R)i"OCURl!AYENDn-a-on-ANOTO(R)O:-`auo^1q^3o!AS:U.Q!A^3o"NOTYENH>>!(c)u^3oYEN>>(R)N-a-o|~A:O:!C                
                                                                                                                        
  (c)NOT-a-:'E(R)iYENU:CURF,O|p|o|b,^3"AE.|CURCURA:^1+-oAU|PYENh<<O/^3yCUR@(R)y                                         
  1/4AE|E,U(c)INOTAE|U:CURQ>>oNOTu:CUR,-a-o(R)O:-`auo^1q^3o!A |yNOTO!A|p-aGS:A.QnYENh<<O/^3yCUR@(R)y,} 1/2n"(R)"(R)'    
  *!AS:A+-N.|^3Q-aEA:n|buL 1/2auL-oE-a-oDEGQ 1/2 *CURS:CURCUR!C                                                         
                                                                                                                        
  YENL((c)NOT-a-:'E)"A,NA:A!A^3oNOTO|]NOTDEGCUR@O(R)O:-`auo^1q^3oNOTO^3o 1/4E-a-o 1/4sAi!A^3o                           
  1/4E-a-o(c)uP:Q!A"AYENB^3o 1/4E-a-o 1/2AEAo/!A                                                                        
  YENH|U:(c)oCURHIuL-ak'x'CURYEN|!A|O"A<<D^1A,O!AYENLI<<aeCURA-a-oS:AE+-ae|^3CURH-`aDEG-:ADEGYENLI^3B^2z"A,N"M(c)O|^3-o 
  3/4,H-a-o^2OP:u!C Richard P. Feynmann u^1CURFCUR@"C,|^3 1/2`i!AYENB<<D+-`CUR@DEGw"-L-|aa-a-o 1/2                      
  *AI!A|bYENL-a-o(R)N'-L-"`iCURF Los Alamos -a-o"OCURl!C                                                                
                                                                                                                        
  YENtCUR@CURe+-!AYENo|oCURH^3-L--`a|UCURv|bP:gYEN 1/2^2O,ECUR@(R)y,} 1/2n"(R)"(R)'                                     
  *YENX"O!A"AYENBCUR'|^3P:-c-^2aYENiYENHAE[ 1/2`a^1quo/CURI-a+-^1CA,!C |]|^1!AuL 1/2 *S:AS:@CURF|h>>oS:^1u              
  1/2-a-o.C,^3AE!ACUR]CUR-L--oTHS:A'-L-YENX-a-oCURe(R) *NOTO|h>>o-a-oS:'.i!ANOTY"C,CURHCUR'+-NS:`i|i                    
  3/4-:.|P:]YENX"OS:iP:DS:A!A YENLYEN?|bS:@|P 1/4E-a-o"AE!AYEN?|bYENIYENXS:VCURO!AYENL'N|b ^3o,I!C                      
                                                                                                                        
  |bCUR|^3A!AS:UI-oU^3oOYENsS:@!y-ae|-o-dYENO:!z(setting your                                                           
  fingerprint)!C^3oAo:<<Y"`iS:AOCURH-a-oAA-oP:AE(c)MAn+-ae!A                                                            
  ^3oAo:<<Y"`iS:ANOTOS:_YENiYENH<<u:uUNOTY|a<<a^1iuUS:OCURH>>!!G!y^3o,I! ^3oNOTO S:U S:@-a-o!C!z                        
  ^3oNOTONOTF-avCURH-a<<<<U:<<n-a-oCUR@O-S 1/4x!C|yNOTO!A(R)E 3/4-:NOTOCURj|h 1/4AECURHYENA(c)O                         
  1/2a>>P-a-o!C.Q.Q"-o"C,-d|bCURo-ad|aCURW-a-o,}|LS:a!C                                                                 
                                              --Poul-Henning Kamp <phk@FreeBSD.org> on freebsd-hackers, October 2, 1999   

     --------------------------------------------------------------

                   Chapter 17 FreeBSD S:N--o,U:P:DEG

   Edward Chuang

   17.1. How cool is FreeBSD!H

   17.2.  1/2O:|bS:U-a-oDEGO 3/4D-AAe'! 1/4NCURCUR"F"FS:@AAT!H!H

   17.3. n'XO FreeBSD hacker CUR~-`a'<<+- 1/4CUR@O^1q?O-aw!H

   17.4.  1/4gCURJ /dev/null -a-o,e(R)AEP:]"`ith,IYENhCURF!H

   17.5. 1993 |~'N|^3!ymake world!zCURF!H

   17.1. How cool is FreeBSD!H

   DEGY!G|^3CURHDEGu^1L FreeBSD DEGo|ae(R)E-a-o.AA<< *'u,OP:U:!H
   S:U-a 3/4^1D Linux CURn DOS ^2D!A|y"SAAYENCURH'-L-^1L
   FreeBSD!A|u:YENG<<U: 1/4o:!C

   u-a!G"S|^3!A|yNOTO|b"yA:+-CURW|^3DEGu^1LuL
   1/4AE|,'u,O!CS:UIA(c)CURW|UA:@"u:,O-aI-a-o
   ^2'.u!A"AEYENy|Au^1YENLI-aAYENI 250 ^2@S:J-a-o LSD-25
   DEGgCURUAA:!C35% -a-o"u:,O-aI>>! FreeBSD ^1ADEG_"O^1^3
   3/4iCURl!A|O Linux <<hNOTOuu|a-a-o-od 3/4d--aG^1e!C 3/4US:U(c)O-a
   3/4!A"S |^3CUR@^2O'-L-"`i.AA<<
   *CURW-SS:O-a-o(R)t^2S:!C<<a"Ouo^2{!A|^3CURO|h"u:,O-aI|b'u,O(R)E^1U^1C"<<
   YENX(c)D-P:! 1/4vAAT"`i 1/4AE 3/4U!A^3I<<aYENu+-o(c)n+-o 3/4aO
   1/2ONOTd!CS:U.QCURj^3!YEN-:-a-o"u:,O-aI^2{|b|b Apple CURuS:@!AA:~
   Drag and Drop CURS:<<a!ANOTa"sYENth.s-a-o !S:Scratch and Sniff!"
   ^1IS:INOTE+-!CIt's a funny old business we're in!I

   CUR-L-P:}-a+---oCURF!AFreeBSD (c)M Linux ^3-L-"IYENI HLT (halt)
   <<u:YENO!AYENi|b"t^2IP:-c-,m(R)EDEGS:C^1qCURO-a-o"IYENICUR]'iCURO:CURF
   1/4o:-a-o^2-L-YENI!C|p-aG|^3^3](c)w APM(Automatic Power
   Management) !AFreeBSD CUR]YENiYENHAAy CPU P:iCURJNOTU^1q 1/4O|!!C

   17.2.  1/2O:|bS:U-a-oDEGO 3/4D-AAe'! 1/4NCURCUR"F"FS:@AAT!H!H

   DEGY!GFreeBSD  1/2sA:P:(R)O:CURss(R)E|^3DEGuNOTAE>>o !S:(c)_-S!"
   -a-o"AE AAyDEGO 3/4D-AAe"F"FS:@AATP:U:!H.i 1/2sA:P:(R)E(AU|^3P:}
   3/4-:(R)E 1/2T>>{^3n-oD-<<a-a-ouu 1/4E(R)EP:!)!A
   CUR]-oO/|u:YENG"O|UDEGO 3/4D-AAe'! 1/4N-a-o(c)_(c)C,Anu!C

   u-a!GNOTO-a-o!I|b BSD -a-oCURaaYENoCURCURS:A.|+-`+-`NOTY"`i
   !S:I<<aAEF!"!A CURj^3!YEN-:-a-oCURH^3-L-CUR-L--a
   3/4^1D"-oNOTOCUR@-oO/^1e>>U|s|b-a-o-oe-<<AAe ---
   'x+-+-uUS:A-a-o^1q,-L-!C
   S:AAAYEN"`i-a-oAnuNOTO^3o"C,I<<aAEFYENHDEG-auCURfi|b. 3/4^3q<<c,
   1/4EDEGu^3\|h-a-o"t^2I-oTH^2zCURu S:@!C

   |p-aG^3o"C,Anu<<U:S:xAZS:A!A"O|U DOS -a-o fdisk /mbr
   'N-`aA\^2ae!A|y|p-aG|^3NOTUCURI-a-o(R)A:-aG
   CUR]CUR-L-nAAaa^3Y!C"AE^1eCURW!A|p-aG|b>>o:|!CURCURAAYEN"`i Bill
   Gates (R)-L-(c)AE-a-oAnu+-qCUR-o
   <<O/-a-o^3aYENzP:C,"O!ADEG"CURWDEGk|OYENBCUR-L-n|^AY!I +-q BSD
   I<<aAEFCUR-L-YEN?AA-a-o 1/4vAATCURCUR ,N(c)n!ADOS (c)M Windows
   I<<aAEF^3q+-`^3-L--`a<<.s+-+-"i 3/4aYENx 3/4-:
   3/4^1"A^1iS:A-a-oAEF >>iP:A(c)G!C|p-aG|^3?i
   3/4U:!AS:U.QS:U^1c,A:@^2ss-oD(c)_(c)C,-a-oAnu!C

   17.3. n'XO FreeBSD hacker CUR~-`a'<<+- 1/4CUR@O^1q?O-aw!H

   CUR@CURdCUR@|ECURCCURQCURGO!G

   CURGCURQCURTO|b -current CURW(c)e<<eNOTYCUR-L-"`iYENuCURF!F

   YEN|O<<AA-oU^3oNOTO^3](c)wCURW-a-oDEGYAD!A(c)OYENH^1^3^3o 1/4E-a-o
   email A^3,O(c)n|b -questions!F

   CURTO submit PR!A"a:CURCURCUR@ODEGe?u"`i doc
   CURU!A"AYENBCUR-o(R)eYENu |^3!"^3o,I|n.t!"!F

   CUR@O commit (c)|YEN 1/4'u,O-a-o^1q?O-aw!A^3y|"CUR-L--`a
   buildworld!A CURCURAA:A<<aYENLS:a`i"O-a-o?O-aw'<<|^"O!F

   CURKO-o'DEG_ flame war!A^3d(c)C,DEGeYENX PR -a-oCURH"S|^3YEN]NOTA
   patch!F

   CURO(R)I<<e buildworld A:e+- 1/4CURF!F

   CURTCURQCUR@O>>! buildworld
   YENiYENHYENI!ACUR-L--`aYENI-a-oCURHCUR@(c)wNOTO cvsup -a-o (R)E
   3/4-:CUR-L-^1i!F

   CUR@OS:a'<<|".s?O-aw-a-o patch YENa"`i -hackers CURW!F

   CUR@O>>!YENLCURT|~<<e'NDEGuYENXCURF patch!A|yDEGe"`i -current
   <<a<<o^3Q(c)?^2CUR+- 1/4!A (c)OYENHYENL^1i 3/4aO PR
   "t^2I|^3<<U:CUR-L-|n-a-o|LP:H!C|^1YEN~!AYENLCUR]>>{NOTDEG(R)^3YENX-a-o.s?O-awuL
   -akCURIYENu!F

   CURTCURQCURCO(c)Hy>>!^1q?O-awCUR-L-A:Y(c)oDEGoYEN>>"t^2I-a-oCUR@^3!YEN-:!A(c)OYENH
   committer CUR-L--`aCUR-L-YENy?O,ss 3/4aO Community -a-o.N"-L-'N^3o
   1/4EDEGuCURUYENh!CAU|^3!A-core
   "`i(c)^3(c)M^3oYENo"AE|^3CURDEG>>oAo:<<Y!H!I

   "a|ECURH(c)e<<e'<<?O-awCURS:<<a!A,} 1/2n"(R)'
   *-a-oAC|aAAU:+-o|n(c)_(c)C,!F

   CURTO<<u:YENX!AYENI"O'<<?O-aw-a-o patch CUR-L-^2AA|X style(9)
   -a-o^3W(c)w!F

   CURQCURCO(R)I<<e(R)^3YENX"O-a-o.s?O-awNOTDEGCURDEG>>oNOTOYENI
   GPL!F

   CUR|ECURKCURQCUR>>CURH^3'CURJCUR@^3o flame war!A|b
   GPL!BBSD!BMIT!BNPL |UO license (c)M FSF
   NOTY|`iCUR-L-"a|W^3D-?`iCURHCURhOCURH 1/2AYENICURS:P:!!ACURn,u(c)
   1/4|^1 -a-oAuP:O!F

   CURCO+-N^3oCUR@|eDEGQ 1/2 *-a-oCUR-L-|P^3!YEN-:CURAS:O^2 3/4"`i
   -chat (c)M -advocacy!F

   'N-oa'-L-YENX-a-o.s?O-awCURnAA-a-o.t!AAUNOTO|^3CUR@OS:aYEN| commit
   P:i"O!F

   "aO'<<|^`iYENy-a-o?O-aw!A"AYENB-dCURU.YENNOTDEG 1/4<<<<a-a-o
   commit DEGT(R)S:!CYENLI>>{NOTDEG >>P"a:AAy FreeBSD
   YENI.t?O-aw!AAUCUR-L-|pDEG(R)-U:<<Y|bP:A.tCURCUR-oaCURF!F

   YEN|CURQCUR>>CURH^1i"u(R)o/CUR-L-YENI.t?O-aw^3oYENo"AECURjAn-e(c)I!An"D
   -core YENss"e'-L-YENX 1/4a^2M!F

   CURQCUR@On"D'<<|"CURpCUR@AI-a-o^1q?O-aw!AYENH<<KYEN 1/4"O FreeBSD
   |p-aG^2 3/4'O"`i ^1qCURlAuCURW<<a.|S:oNOTDEGCURe<<K!F

   CURCCURQCURTCURH(c)e<<e -hackers (c)M -chat CURW-a-o SNR!AAC,
   unsubscribe "O-aiYENU:S:U:A:^3!F

   CURQCURTODEGeYENX!"unsubscribe!"!B!"S:Un|p|o
   unsubscribe!"(c)I!"<<oDEGUS:a S:U+-q list |W^3aeCURCURS:R+-
   1/4!"!A<<H-a-o^3I<<a+-<<hNOTOCUR@-eYENN majordomo YEN[CURWYENh
   -a-o footer!F

   .i"COCURH|-L-(c)o(c) 1/4|^1YENs
   1/2|(R)E!A|^3O^3AYENeP:X"SCURH-a`.N!AS:aYENiYENHYENI-a-o?O-awDEG
   1/2 DEG 1/2'<<CURWYENh!F

   CURTCURQCUR@O<<u:YENX|p-aGYENI TenDRA 
   1/2sA:P:.s-a-o?O-aw!A.|CURnAA-a-o"O+-o<<G 0.364%!]Ao:uM?O-aw.|^3Q
   1/2sA:P:|"YEN?CUR>>+-AAe!^!A(c)OYENH FreeBSD CUR-o(c)w-a-o
   1/2sA:P: 3/4^1 A^3,ONOTO TenDRA!A|OCUR-L-NOTO EGCS!F

   |^3OCURH>>!.s?O-aw-EYENFNOTu:.P!F

   CUREOCURH!]YEN]NOTA`iYENyDEGe PR -a-oCURH!^DEGY!"CURDEG>>oNOTO
   MFC!H!"!F

   CURCURQCURCO(c)e<<e|U+-q'<<CURF?O-aw<<a!A"aONOTP'A^3-L-"S|^3YENuYENX^2{!C

   Nik Clayton <nik@FreeBSD.org> ,E-a`!G

   eNOTY"`i(R)E!AS:US:O:--oA 1/2CURF!C

   uM<<a.Q"`i!A!"uYENCUR@CURU!ACUR-L-NOTOA^3,OAU|^3CUR@On+-N^3o"C,DEGO|b
   list CURWP:U:!H!"

   +-uuU^2 *(c)oCURF,NS:U-a-o"I(c)R :-)

   17.4.  1/4gCURJ /dev/null -a-o,e(R)AEP:]"`ith,IYENhCURF!H

   |b CPU CURCUR|^3CUR@-oO/-SS:O-a-o,e(R)AE'^2 1/4o:
   3/4^1!AS:QYENI+-AEYENX'^2 1/4o:CURu/.(R)DEG^2O|X(R)E!A A`a'<<|"
   1/4o:-`a!D^3o'NNOTONOTDEGCURDEG>>o CPU
   S:N<<oCUReAI<<n-a-o`i|]!F.iCURHI"IYENIS:oS:O: -a-o^3B^2z
   3/4^1(R)E!AYENLIAAU:|"CUR-L-|bYENG|^3P:V"OP:V|hYENLI-a-o,e(R)AE^3-L-DEGeP:iCURF
   /dev/null !A|O"I-a-oYENLI-a-o CPU ^1L 1/4o:!D
   |p-aGS:AS:RDEG-L-CURF /dev/null ("-o+-N.||^3(R)A:-a-oAo:^3NOT CPU
   -a-o,e(R)AE'^2 1/4o: 3/4^1) S:A-a-o CPU
   CUR]^3\.|DEGS:CCURuS:@.AA<< *!A|yNOTOS:A-a-o"t^2I+-N
   .|<<U:S:O:-a-o^1^3NOTO?(c)+-wCURF<<K-u|nAHuU(c)O|^3P:WYENX-a-o,e(R)AEP:}(c)lAAU:|"|aeNOTDEGCUR-L-YEN?+-`!C
   |p-aGS:A|^3S:O:^3t-a-o-oo,o^3s 1/2u!AS:AYENiYENHS:QYENIAA-a"u
   /dev/random "A+-NYENLAH.NP:C,DEGe|U:|U^3B!A "ODEGS:CS:A CPU
   -a-o.AA<< *!FuM|OS:A+-N^3'CURJ"IS:A-oo,o^3s 1/2u(c)I / |^3^1L
   1/4o:-a-o.AI(c)INOTO.S'oS:A-a-o ISP!A CURj^3!CURA-a-o,e(R)AE^3I^2
   *+-N.||bYENLI-a-o^3]^3AECURWA`a'<<|"
   1/4o:!ACUR-L-^1LYENLI^3q+-`^3-L- 3/4O:|^3 |n-a-o'^2
   1/4o:!A(c)OYENH|p-aGS:ADEGu-a-oCUR-L-CURO^1LCURA!AA^3,ONOTO"SCURDEG>>oCURjCUR-L-CURF-a-o!C

   Paul Robinson ,EYENR!G

   CURCURCURaa-a(c) FAQ
   -a`!GYENHCURUuuCURaaA:Y(c)oNOTu:|!<<OAq!A(R)-L-A
   1/2A:P:<<a^3y|">>y^2jCUR-L-,O!A
   >>y.NCUR-L-^3q-a-o+-!S:I!ANOTG<<O-d`iYENA:`i"yAAyAA-a-aI|U|ae<<~A|!C

   There are other methods. As every good sysadmin knows, it is part
   of standard practise to send data to the screen of interesting
   variety to keep all the pixies that make up your picture happy.
   Screen pixies (commonly mis-typed or re-named as 'pixels') are
   categorised by the type of hat they wear (red, green or blue) and
   will hide or appear (thereby showing the colour of their hat)
   whenever they receive a little piece of food. Video cards turn
   data into pixie-food, and then send them to the pixies - the more
   expensive the card, the better the food, so the better behaved the
   pixies are. They also need constant simulation - this is why
   screen savers exist.

   To take your suggestions further, you could just throw the random
   data to console, thereby letting the pixies consume it. This
   causes no heat to be produced at all, keeps the pixies happy and
   gets rid of your data quite quickly, even if it does make things
   look a bit messy on your screen.

   Incidentally, as an ex-admin of a large ISP who experienced many
   problems attempting to maintain a stable temperature in a server
   room, I would strongly discourage people sending the data they do
   not want out to the network. The fairies who do the packet
   switching and routing get annoyed by it as well.

   17.5. 1993 |~'N|^3!ymake world!zCURF!H

   DEGY!G(R)U 3/4U jkh -a-o ^3oYEN-: commit!AA^3,ONOTO Aug 13
   22:47:28 1994 UTC CURS:<<aCUR~.||^3 make
   world!A<<c,>>o.||^3|b"-oCURS:<<e.||^3(c)O!H

   u-a!G(R)U 3/4U pttlz.bbs@ptt.cc (CURuAAE) (c)o Apr 7 17:09:47 2008
   CST |U-oU!G !ymake world NOTOS:UYENj| (15 |~<<e) (R)E-a+- freebsd
   (R)EYENI-a-o!z!A(c)OYENH 1993 |~'N|^3 pttlz -a-o!ymake
   world!z|s|bCURF!A 1/2D--a`.NCURH(R)aYENiNOTO|U-oU!y15
   |~<<e!z-a-o-ao/ 1/2u!A  1/2D-CURAA^1i-ao/ 1/2uAAv<<ANOTD
   3/4O!AAAAA!I

     --------------------------------------------------------------

                       Chapter 18 P:iP:YENYENDAD

   En-Ran Zhou

   18.1. |p|o-`a 3/4C,^2ssS:o|h|^3Ao: FreeBSD CUR-o^3!-a-o-aF|e!H

   18.2. |p|o-`aNOTDEG FreeBSD YENXCUR@YEN-:CURO!H

   18.3. SNAP (c)M RELEASE NOTOCURDEG>>o!H

   18.4. n<<c,>>oS:@YENX|UCURv-a-o release!H

   18.5. NOTDEG|o make world .|S:a`i"O,E-a-o binary AE^3-L-'<<+-
   1/4CURF!H

   18.6. Why isn't cvsup.FreeBSD.org a round robin DNS entry to share
   the load amongst the various CVSup servers?

   18.7. |b"t^2IP:} 3/4-:(R)E!AYENX^2{ !S:(bus speed defaulted)!"!C

   18.8. |b-oo,oAW 1/4e|^3-a-o+-!-apCURU!AS:UCUR]YENiYENH,oCURW
   current -a-ouo(R)iP:U:!H

   18.9. NOTO<<c,>>oS:auo|ae-a(c)YEN>>CURCUR-a-oAE(R) *CURA|"CUR@OO
   240k -a-oCURpAE(R) *-a-o!H

   18.10. S:U|b kernel CURCURYEN[CURF.sYEN\-`a!AS:UnS:aYEN|+-Hu^1
   1/2O:!H

   18.11. ISA
   -a-oAH'!S:YYENIYENdNOTO|p|oDEG>>'uCURI-a`i(c)lCURAE-a-o!H

   18.12. S:UNOTDEGNOTY^3]^3AE
   1/4gCURFAAXDEGEu{|!!A-`aCUR-L--`au^1YEN|CUR@O major number!H

   18.13. Ao:(c)oS:oDEGEYENO/?y(c)n,m-a-o`i<<h!H

   18.14. |p|o|b kernel panics (R)E+-o"`i^3I|h-a-o,eDEGT!H

   18.15. NOTDEGCURDEG>>o dlsym() CUR-L--`a 3/4THS:@ ELF DEGo|aeAE!H

   18.16. S:Un|p|o 1/4WYEN[(c)I'iCURO: kernel -`a(c)wS:}-a-o-aAAP:!!H

   18.1. |p|o-`a 3/4C,^2ssS:o|h|^3Ao: FreeBSD CUR-o^3!-a-o-aF|e!H

   YENO/<<eYEN<<+-CURWAU"S|^3+-'DEGQS:@.~"t^2ICUR-o^3!-a-o(R)NNOTO+-MNOTDEG
   FreeBSD |O 1/4g -a-o!CuM|O!A^3\|hCUR@-e-a-o UNIX -a
   3/4AN^3-L-YENiYENH-a 1/2+-uA^3YENI|b FreeBSD CURW!C-ath
   YEN[CUR@AI!ACUR'uM|^3NOTUAo:-a-o(R)NNOTO+-MNOTDEG BSD (c)O
   1/4g-a-o!C

   1/2D-DEGN|O Handbook -a-oS:@.~"t^2ICUR-o^3!CURS:DEGN|O(R)NYENO/ !C

   18.2. |p|o-`aNOTDEG FreeBSD YENXCUR@YEN-:CURO!H

   1/2D-DEGN|O^3o 1/2gCURaa^3^1 Contributing to FreeBSD
   "O'-L-"N+-z-a-o<<O/A:^3!C|p-aG+-z-`aADEG|-L-"-o'NS:oAAw-aiCURF!I

   18.3. SNAP (c)M RELEASE NOTOCURDEG>>o!H

   YENO/<<e|^3CURTONOT!AAD/YENbNOT!AAD-a-oCURACURa:|b FreeBSD -a-o
   CVS Repository
   (YENj|CURACURa:CURw,g'XYENG"S|bS:o.sCURF!A|]NOTDEG^3q+-`YENu|^3CURTONOT!AAD-a-ouo(R)iCURACURa:)!G

     * RELENG_5 S:Y 5-STABLE

     * RELENG_6 S:Y 6-STABLE

     * HEAD S:Y -CURRENT CUR]'NNOTOYENO/<<e-a-o 7.X-CURRENT

   >>PCURW+-"a:YENL"aOCURACURa:NOTUCURn!A"a:^1e HEAD
   "ACUR-L-NOTO-uYEN? -a-o branch tag!AYEN|YENuNOTOO symbolic
   constant!AYENN-ai !S:current ((c)|YEN
   1/4CURACURa:-a-ouo(R)iCURCUR-a(c)YEN>>)!"!A^3q+-`S:UI.|A^2
   1/4gNOTDEG !S:-CURRENT!"!C

   'N^2{|b|O"YEN!A!S:-CURRENT!" 'NNOTO<<u: 7.X -a-ouo(R)i!F |O
   5-STABLE CURACURa:(RELENG_5)NOTO|b 2004 |~ 10 CURe+-q
   !S:-CURRENT!" fork YENX"O-a-o!F 6-STABLE CURACURa:(RELENG_6)NOTO|b
   2005 |~ 11 CURe+-q !S:-CURRENT!" fork YENX"O-a-o!C

   18.4. n<<c,>>oS:@YENX|UCURv-a-o release!H

   1/2D-DEGN.O Release CURuu{ CURaa^3^1>>!(c)u!C

   18.5. NOTDEG|o make world .|S:a`i"O,E-a-o binary AE^3-L-'<<+-
   1/4CURF!H

   "S?u!A'NNOTO^3o 1/4ECURl!C|p|W|r(c)OYENU:!Amake world .|<<.s
   1/2sA:P:"t^2ICUR-o<<O/-a-o"CO binary AE!A^3o
   1/4E|bu^2S:o(R)E'NYENi
   1/2T(c)w|^3OCUR@PYENBDEG(R)^2b-a-oAo^1O((c)OYENHn-aaCURW|nCUR@NOTq(R)EP:!)!C

   |bDEGo|ae make world (c)I make install (R)E!A|p-aG|^3^3] DESTDIR
   ^3oOAo^1OAAU: 1/4AE!A.s^2-L-YENI-a-o binary +-N.|,E|b ${DESTDIR}
   CURU|P 1/4E-a-oYENO/?y 3/4d-CURCUR!C|y|bNOTY"C, *S:i shared
   library (c)M<<<<O/ binary -a-ouL-S(c)w+-!-apCURU!A^3o
   1/4EDEGuYENi-`a.|"I make world YEN-c-+-N!C

   18.6. Why isn't cvsup.FreeBSD.org a round robin DNS entry to share
   the load amongst the various CVSup servers?

   While CVSup mirrors update from the master CVSup server hourly,
   this update might happen at any time during the hour. This means
   that some servers have newer code than others, even though all
   servers have code that is less than an hour old. If
   cvsup.FreeBSD.org was a round robin DNS entry that simply
   redirected users to a random CVSup server, running CVSup twice in
   a row could download code older than the code already on the
   system.

   18.7. |b"t^2IP:} 3/4-:(R)E!AYENX^2{ !S:(bus speed defaulted)!"!C

   Adaptec 1542 SCSI YENdCUR^1^3\"IYENI-aIYENI^3nAAe 1/2O 3/4aP:
   *NOTy+-AE-a-o|s"u^3t<< *!C |'A-a-o 1542
   AAXDEGEu{|!,O^1I+-NYEN|^3]|"YENiYENI-a-o^3IS:O:^3t<<
   *!A|y<<a"Ouo^2{|bCUR@ "C, 3/4-:
   3/4^1CURWCUR-L--`aYENI!A(c)OYENH^2{|bn|b kernel ^3](c)wCURCURYEN[
   TUNE_1542 ^3oO?iP:u"O+-ODEGE^3oOYEN\-`a!C|bCURa:'(c)-a-o 3/4-:
   3/4^1
   CURWYENI^3oO?iP:u.|"Iuw-oD-|s"uS:oS:O:!A|y|bCUR-L-CURa:'(c)-a-o
   3/4-: 3/4^1CURW|^3YENi-`a.|.'+- 1/4,e(R)AE!C

   18.8. |b-oo,oAW 1/4e|^3-a-o+-!-apCURU!AS:UCUR]YENiYENH,oCURW
   current -a-ouo(R)iP:U:!H

   NOTO-a-o!AAC,uU CTM +-z'NYENiYENHCUR-L-YENICURU,u:YENth^3!-a-ou{|!
   1/2X!C

   18.9. NOTO<<c,>>oS:auo|ae-a(c)YEN>>CURCUR-a-oAE(R) *CURA|"CUR@OO
   240k -a-oCURpAE(R) *-a-o!H

   YENH BSD NOTDEGDEGoA|-a-o,u.s"t^2I|^3O -b ?iP:u YENiYENHS:aAE(R)
   *YENHYENo.N 1/4AEYENO/ byte CURAP:}!C

   ^3o,INOTO /usr/src/Makefile CURCUR-a-oCUR@O "OCURl!G

 bin-tarball:
 (cd ${DISTDIR}; \
 tar cf - . \
 gzip --no-name -9 -c | \
 split -b 240640 - \
 ${RELEASEDIR}/tarballs/bindist/bin_tgz.)

   18.10. S:U|b kernel CURCURYEN[CURF.sYEN\-`a!AS:UnS:aYEN|+-Hu^1
   1/2O:!H

   1/2D-DEGN|O Contributing to FreeBSD
   CURCUR-a-oCURaa^3^1!AYENHCURF,Nn|p|o'-L-"N+-z-a-ou{|! 1/2X!C

   |P(R)ECUR]AAAA+-z-a-oAo:CURss!I

   18.11. ISA
   -a-oAH'!S:YYENIYENdNOTO|p|oDEG>>'uCURI-a`i(c)lCURAE-a-o!H

   YENN Frank Durda IV (c)O 1/4g!G <uhclem@nemesis.lonestar.org>

   A^2^3ae-a-o>>!!A.iYEND 3/4-:uoYENXNOTOS:_|^3 PnP
   YENd-a-o,ssDEGYDEGT,^1(R)E!A(c)O|^3-a-o PnP YENd
   .||b'XO(c)T(c)w-a-o I/O port S:@|^A^3!C(c)OYENH.iDEG>>'u PnP
   -a-ou{|!P:}(c)l(R)E!AYEN| .|YENyDEGY|^3"S|^3 PnP
   YENd|b!A+-uuU(c)O|^3 PnP YENd.||bYEN|AA-a-a-o port YENH|UCURv-a-o
   <<NOT,^1 # S:@|^u-a!A^3o 1/4EDEG>>'uu{|!'N.|+-o"`iCUR@O wired-OR
   !S:yes!" -a-o 1/4AE|r!A"a:CURCUR|U:CURO:.||^3CUR@O bit
   NOTOYEN'P:}-a-o!CuM<<aDEG>>'uu{|!.|n"D<<NOT,^1 (YENN
   Microsoft/Intel<<u:(c)w)CURp(c)o X -a-oYENd!S:A-:
   1/2u!"!C|AYENhNOTYNOTO S:_AU|^3YENd|^u-a|P
   1/4E-a-o,ssDEGY!A|p-aG+-o"`i 0!A'N-aiYENU:"S |^3<<NOT,^1CURj(c)o X
   -a-oYENd!C ^2{|bu{|!.|DEGYNOTOS:_|^3<<NOT,^1CURp(c)o X
   -a-oYENd!A|p-aG|^3-a-o,U:!Au{|!|An<<NOT,^1CURj(c)o X-(limit/4)
   -a-oYENdA-: 1/2u!AuM<<a<<AD- CURW+--a-oDEGES:@!CYENI<<
   1/2AE^3o-oO/Ath|u: semi-binary search -a-oCURe-ak!A|bNOTY
   1/2d^3oCUR-o S:a:O'X|,<<a!A'uu{|!^3I<<a.||b 3/4-:
   3/4^1CURCURDEGICURAYENX(c)O|^3-a-o PnP YENd!A.j'M|, 1/4AECUR]
   >>.S:C(c)oCUR@OOS:a:-a-o 2^64 |,!C

   CUR@+-iYENd-a-o ID YENN"aO 32-bit((c)OYENHCURW+-NOTO 2^64) + 8bit
   DEG>>?u 1/2X ^2O|"!A^2A:CUR@O 32 bits NOTOYENI"ODEGICURA|U(R)a
   1/4tDEGO-a-o!C^3o"C, 1/4tDEGO+-q"O"S|^3YENX"O 1/4a
   ^2M^1L!A|yNOTY"OA^3DEG^2^3]|PCUR@(R)aYENX-a-oCUR-L-|P-oO/Ath-a-oYENd-a-o
   1/4tDEGO ID |^3YENi-`aCUR-L-|P!CYENI 32 bits
   YENu"O-aiYENU:CUR-L-|P 1/4tDEGO-a-o.Q-ak^1e|b|^3AI^1LAYCURF!C

   ^2A:CURGO 32 bits <<hNOTO<<NOT,^1
   #!BCURACURO-oo,o|`iS:}!B(c)ICUR@"C,"I^3o+-iYENd?W-S-a-o
   ,e(R)AE!CDEG-L-<<D^2A:CUR@O 32 bits CUR-L-|P!AS:_<<h
   1/4tDEGOCUR-L-YENi-`aS:@YENX^2A:CURGO 32 bit NOTU
   |P-a-o"a+-iYENd!C(c)OYENH|bCUR@YENx 3/4-: 3/4^1CURCURYENiYENH|^3|P
   1/4E-a-o|n'X+-iYENd!AuM|OYENLI 3/4aO 64 bits
   AUNOTO.|^3-L-CUR-L-CUR@ 1/4E!C

   ^3o"aO 32 bit
   u'^1iCUR-L-YENiYENHYENthNOTDEG^1s!A^3oCUR~-`a"I+-o^3IP:}(c)l
   binary search CURCUR-a-o wired-OR .|+-o"`iCUR@O<<D^1s 1/4AE|r!C

   CUR@YEN^1"t^2IDEGICURAYENX(c)O|^3YENd-a-o ID!A+-uuU.|,gYENN|P
   1/4E-a-o I/O port CUR@OO<< .s+-ODEGE"C+-iYENd!A+-uuUS:a:YENXCURw-a
   3/4CURP:+-YENd(c)O>>Y-a-o,e.
   1/2!B|^3th"C,CURCURA_YENiYENH"IYENIuYEN
   uYEN!C(c)O|^3YENd^3-L-.|^3Q+-
   1/2'yCUR@|,!A"O|NOTP:DEG^3o"C,,e(R)AE!C

   ^3o"C,,eDEGT+-uuU(c)Muw-oD-CURW-a-o ECU AE(R) *!B(c)I MLB BIOS
   ,I-a-o,e(R)AEu^2|X|bCUR@ DEG_!A^3q+-`NOTO-oi|X ECU (c)M MLB ,I-a-o
   BIOS PnP ,e(R)AE!A^3o"C,P:gAa:"ACUR-L-CURa:'(c)-uYEN? -a-o
   PnP!AuM|ODEG>>'uu{|!|bAENOTd BIOS (c)M ECU
   ,e(R)AE<<a!AYEN|YENiYENHA *S:K PnP P:gAa:
   (c)M"-o"C,DEG>>'uCUR-L-"`i-a-oNOTU 1/2A:NOTd-!C

   +-uuU|A<< *<<o^3X^3o"C, PnP P:gAa:!A^3o|,.|S:aYENiYENI-a-o
   I/O!BDMA!BIRQ (c)MDEGO 3/4D-
   AAeNOTM(R)g-a-o|`iS:}^3-L-<<u:(c)wu^1YEN|I!C^3o"C,P:gAa:'N.|YENX^2{|b(c)O<<u:(c)w-a-o|aCURe!A-a
   1/2"`iCURUCUR@ |,<<.sP:}
   3/4-:NOTDEGCURi!ACUR-L-^1LCUR]"S|^3CURH>>!CUR-L--`aS:aYEN|IAH(R)E^2
   3/4"O^2 3/4YENh!C

   CURW+-|^3NOTU.i|h-a-oA^2CURAE!A|yS:AA^3,OCURw,gCURF,NCURjP-a-o^1Lu{!C

   Microsoft S:a-aiYENU:|L-ai 3/4-:-aNOT-oA-a-o'XOYENDn port
   (R)^3"OS:@ PnP!AYENLI-a-o
   AATH?eNOTO"S|^3CUR@+-iYENd.||b^3o"C,|aCURe,N 1/2XS:@NOTUCURI-a-o
   I/O cycles!C|yNOTOS:US:a:"`i CUR@'U|'ACUR'|buu|o PnP '-L-(R)
   *(R)E-a-o IBM `i 1/4t printer board!AYEN|-a-o 1/2TYENh,N
   ^1i^3o"C,-aNOT-oA port -a-o 1/4gCURJ,e(R)AE!A|yNOTO MS
   !S:>>!CURF'N-oa!"!C(c)OYENH YEN|I-a-o 1/2T|^3^1i|L-ai
   3/4-:-aNOT-oA port  1/4gCURJ!AAU|^3AA-a"u,O|`iS:} +
   0x800!B(c)MYENtCUR@O|b 0x200 CURI 0x3ff CURS:P:!-a-o port!C

   18.12. S:UNOTDEGNOTY^3]^3AE
   1/4gCURFAAXDEGEu{|!!A-`aCUR-L--`au^1YEN|CUR@O major number!H

   ^3onNOTYS:ANOTOS:_YEN'-oa+-N^3oOAAXDEGEu{|!CUR
   1/2P:}"IYENI!A|p-aGNOTO-a-o,U:!A 1/2D-S:aYEN|-a-o `i(c)l
   1/2XDEGeCUR@YEN-:u^1S:UI!AAU|^3 files.i386  *S:i-a-o
   ^3!YEN-:!Bkernel ^3](c)wAE
   1/4EYEN>>!BYENHCURIYENI"O^2-L-YENI^3]^3AEAE-a-o MAKEDEV(8)!C
   |p-aGS:ACUR-L-YEN'-oaCUR
   1/2P:}!B(c)I|]NOTDEG-a(c)AAvDEGYAD|OCUR-L--`aCUR
   1/2P:}-a-o,U:!AS:UI|^3-S|a<<O-d character major number 32 (c)M
   block major number 8 u^1^3oCURe+--a-o"IYENI!A -a
   1/2+-uYENI^3o"aO'N|nCURF!CCUR-L- 1/2
   *|p|o!AS:UI^3-L-.|<<U:.P?ES:A-`a|b FreeBSD technical discussions
   P:l>> 1/4 1/2 * 3/4A uo-aiAAXDEGEu{|!-a-o(R)o/(R)S:!C

   18.13. Ao:(c)oS:oDEGEYENO/?y(c)n,m-a-o`i<<h!H

   |b|^u-aAo:(c)oS:oDEGEYENO/?y(c)n,m-a-o`i<<hCURe+-!AS:U|b 1983 |~
   1/4g|nYENO/<<e-a-oS:@-ak
   <<a'N"S|^3|AS:iAAU:^1L!A^3o-oO/CURe|!NOTODEGw^1i`iYENy-a-o FFS
   AE(R) *"t^2I!A<<a"OCUR]"S|^3 ^1iYEN|S:@YENo|oS:oDEGE!CYEN||bA *S:K
   cylinder group ^3QP:n-o!^3oCURe+-DEGu+-oNOTU.i|"YEN\!A
   |yNOTO'N^1^3|^3"C,CURHCURw,g-a`.N"`i!AYEN|(c)M find
   'NDEGt|X+-oCUR-L-CURj|n!CCURj^3!YEN-:-a-oAE(R) *
   "t^2INOTOYENN"-o"C,YENI depth first search(aka ftw) ^2-L-YENI-a-o
   archive >>s^3yYENX "O!A,NYENX"O-a-oYENO/?y inode .| 3/4i,o|n'XO
   cylinder group!A|p-aGYENH<<anDEGu depth first search
   -a-o,U:!A^3oNOTO^3IAV?|-a-o+-!-apCURS:CUR@!C|p-aGS:UI-a 3/4^1DA`|@
   .|^2-L-YENI|hCURO:YENO/?y-a-o,U:!A,N-akNOTO|bDEGuYENo|o|s"u/
   1/4gCURJDEGES:@CURS:<<e!A|b"CO cylinder group
   CURWYENy^3yYENX((c)O|^3YENO/?y 1/4AE/cylinder greoup -a-o
   1/4AEYENO/)^3o>>o|h
   -a-oYENO/?y!C<<U:(c)uAAa-a-o!AS:UIYEN^2P:.n|^3(R)U
   3/4U|aYENh^2q^3o O 1/4AE|r!A'N-oaCUR@O^1^3 10 -a-o<<U:CURp(c)T(c)w
   1/4AEYENO/CUR].|"I(R)A:^2vYENH-AA 1/4AE|"-ao/!CDEGICURA restore
   (S:Y,NP:}CURWz-a-o archive) (c)MCUR@-eAE(R) *
   3/4THS:@-a-oCURe-akYENiYENHNOTO(^2{|bYENI-a-o-ot-oa-akYENi-`anS:o+-O.P)!G
   |p-aGCUR@"C,YENO/?y(^3I|h 10 O)^3-L-|b 10 NOTiCUR-o^2-L-
   YENI-a-o,U:!A"-o>>o'NS:a^3o"C,YENO/?y >>EP:DEG|b|PCUR@O cylinder
   group!CCUR-L--oTH<<c, 1/4E!A
   S:U-a-o,gAAc,<<u:YENX^3oNOTOCUR@OCURw,g
   YENRYEN-:^1eAAc,^1L-a-o^3!YEN-:!C

   Kirk McKusick, September 1998

   18.14. |p|o|b kernel panics (R)E+-o"`i^3I|h-a-o,eDEGT!H

   [^3o,`NOTO+-q Bill Paul <wpaul@FreeBSD.org> |b FreeBSD-CURRENT
   mailing list CURWuo-ai-a-o<<HCURCUR,`?y!A Dag-Erling C. Smo/rgrav
   <des@FreeBSD.org> 
   *YEN?CURFYEN'|r?u>>~!B|AYEN[CURWNOTA(c).,I-a-o-a`,N!C]

 From: Bill Paul <wpaul@skynet.ctr.columbia.edu>
 Subject: Re: the fs fun never stops
 To: Ben Rosengart
 Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
 Cc: current@FreeBSD.org

   [Ben uo-aiCURFCURU+--a-o panic DEGT(R)S:]

 > 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

   .iS:ANOTY"`i^1^3^3o
   1/4E-a-oDEGT(R)S:(R)E!AYENuS:aYEN|<<thCUR@YEN-:DEGeCURW"ONOTOCUR-L-DEG-:-a-o!CS:U|bCURW+-
   -S|a 1/4D-(c)u-a-o instruction pointer
   ENOTU.i<<n!ACUR-L-(c)--a-oNOTOYEN|.||]^3](c)w|O
   CUR-L-|P!C'<<YENy,U:>>!!A^3oOE.|,oS:AYENI-a-o kernel image
   AE|OAAU:DEGE!C|p-aGNOTOYENI NOTYO snapshot -a(c)YEN>>-a-o GENERIC
   kernel!ACUR]^3\"a:YENLCURHYENiYENHDEGlAU:"`iYENXDEGYAD
   -a-o"c,|!!A|y|p-aGS:ANOTOYENI|Uq-a-o kernel!A"-o>>oYENu|^3
   S:ACUR~-`aS:iP:DS:UIDEGYADYENX|b"-o,I!C

   nDEGu-a-o"AEYEN]NOTA^3o"C,!G

    1. S:a instruction pointer -a-oEDEGOCURU"O!C-a`.N|b<<e+--a-o 0x8:
       |b^3oO+-!-apCURCUR"ACUR-L-<<n!AS:UIn-a-oNOTO 0xf0xxxxxx!C

    2. .i"t^2I<<.sP:} 3/4-:<<a!ADEGo|ae^3o^1D(c)RYENO!G

 % nm -n /(^3y|" panic -a-o kernel AE(R) *) | grep f0xxxxxx

       "a:CURCUR f0xxxxxx 'NNOTODEGOCURU"O-a-o instruction pointer
       E!C|^3YENi-`aCUR-L-.|e|nS:a:"`iS:^1 3/4a-a-o^3oO|r|e!A
       ^3oNOTO|]NOTDEG kernel symbol table ,I-a-o|UO symbol
       YENuNOTO"c,|!-a-oP:i CURJAI!A|y instruction pointer
       (c)O<<u:-a-o|`iS:}|^3YENi-`aNOTO|b"c,|!CUR-o-a-o
       NOTYCUR@^3B!A|OCUR-L-CUR@(c)w|bP:}AY!C(c)OYENH|p-aGS:a:CUR-L-"`i
       3/4aO|r|e!A"-o>>oS:a instruction pointer E-a-o^3I<<aCUR@O
       1/4AE|r(R)^3+- 1/4!A|A,OCUR@|,!G

 % nm -n /(^3y|" panic -a-o kernel AE(R) *) | grep f0xxxxx

       |p-aG^3o 1/4ECUR]S:a:CUR-L-"`i!A"-o'NS:aYENtCUR@O
       1/4AE|rYENh+- 1/4|AS:a:!ACUR@-a 1/2<< 1/2AE"`iS:a:"`i
       NOTDEGCURi!A u^2-aGNOTOCUR@|eYENi-`a^3y|" panic
       -a-o"c,|!|C-ai!C^3o 1/4ECURn-a 1/2+-uS:a:"`i
       YENXDEGYAD-a-o"c,|!"O+-o(R)t!A|y|U:CURO:|n^1LCURDEG>>o^3-L-"S|^3!C

   S:U+-`+-`NOTY"`iCURHIAAaYENU:CUR@CURjCURu panic
   DEGT(R)S:!A|y<<U:CURO:NOTY"`i|^3CURH-aaCUR@AI(R)EP:! S:a
   instruction pointer (c)M kernel symbol table
   CURCUR-a-o"c,|!CURn,uCUR@CURU!C

   nDEGlAU:YENX^3y|" panic `i|]-a-o^3I|nCURe-akNOTOYENyDEGuYENX crash
   dump!AuM<<aYENI gdb(1) |bCURW+-DEGu stack trace!C

   CUR-L--oTHNOTO"-oCUR@-oO/!AS:U^3q+-`NOTOYENI^3oOCURe-ak!G

    1. 1/4g|n kernel ^3](c)wAE!C|p-aGS:A>>YnYENI kernel
       debugger!A|b^3] (c)wAECURCURYEN[CURW options DDB ^3oO?iP:u!C
       (.iS:UAh-oA|^3YENX^2{uL
       1/2aDEGjDEGe(R)E!A^3q+-`.|YENI^3oO"O^3](c)wCURCURA_AI!C)

    2. YENI config -g KERNELCONFIG DEGuYENXYENI"O
       1/2sA:P:-a-oYENO/?y!C

    3. cd /sys/compile/ KERNELCONFIG; make

    4. uYEN<<Y kernel  1/2sA:P:u^2S:o!C

    5. make install

    6. <<.sP:} 3/4-:

   make(1) +-N.|>>s^3yYENX"aO kernel!Ckernel AU|^3 kernel.debug!C
   kernel +-N.|^3Q|w,E"`i /kernel!A|O kernel.debug YENiYENI"Ou^1
   gdb(1) .iS:@ debugging symbols -a-o"O. 1/2!C

   n 1/2T(c)w-`aS:`i"`i crash dump!AYENy 1/2s?e /etc/rc.conf +-N
   dumpdev <<u: "`i swap CURA^3IDEGI!C^3o 1/4E rc(8) .|YENI dumpon(8)
   "O+-ODEGE crash dump!AS:ACUR]YENiYENHCURaDEGEDEGo|ae dumpon(8) |b
   panic CURS:<<a!A crash dump YENiYENHYENI savecore(8)
   |sDEG_"O!F|p-aG /etc/rc.conf ,I|^3^3] dumpdev "-o>>o<<.sP:}
   3/4-:<<a rc(8) .||UDEGEDEGo|ae savecore(8) S:a crash dump |s|b
   /var/crash!C

     Note: FreeBSD -a-o crash dump ^3q+-`(c)M 3/4-:
     3/4^1,I-a-o^1e>>UDEGO 3/4D-AAeCUR@ 1/4ECURj!A'N ^1^3|p-aG|^3
     64MB DEGO 3/4D-AAe!Acrash dump CURjCURp'NNOTO 64MB!C(c)OYENHn
     1/2T(c)w /var/crash
     CURU|^3"NOTDEG-:-a-o-aAAP:!!A(c)INOTOYENiYENHCURa DEGEDEGo|ae
     savecore(8) S:a crash dump (c)n"`iYENtCUR@O-aAAP:!,uDEG-:-a-o
     YENO/?yCURU!CYENtCUR@-oO/CUR]^3\YENiYENH"i crash dump
     -a-oCURe-ak!ANOTO|b kernel ^3](c)wAECURCURYENI options
     MAXMEM=(foo)!A+-N kernel YENiYENI-a-oDEGO
     3/4D-AAe"i|b|X^2z-a-oCURjCURp!CA|"O"O>>!!A|p-aGS:A|^3 128MB
     -a-oDEGO 3/4D- AAe!A|yNOTOYENiYENH"i kernel YENu-`aYENI 16MB
     -a-oDEGO 3/4D-AAe!A^3o 1/4E crash dump 'NNOTO 16MB |OCUR-L-NOTO
     128MB CURF!C

   CUR@YEN^1uo^2{|^3CURF crash dump!A'NYENiYENHYENI gdb(1) "ODEGu
   stack trace !A|pCURU(c)OYENU:!G

 % gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0
 (gdb) where

   n-a`.NYENi-`a.|YENX^2{|n'XO?A^1o-a-oYENiYENI,eDEGT!AS:AYENiYENHYENI
   script(1) S:a(c)O|^3?eYENX^3-L-|sDEG_"O!CYENIYEN]NOTA(c)O|^3 debug
   symbol -a-o kernel "ODEG-L-?u!A^3o  1/4EA^3,OYENiYENH-a
   1/2+-uAAaYENU: panic
   NOTOuoYENI|b"-oCUR@|ae!C^3q+-`NOTOYENNCURU(c)^1CURWAA-a stack
   strace!A^3o 1/4ECUR~-`aCUR@OODEGlAU:YENX|^3th"C,DEGES:@CURTH"`i
   crash!CCUR]YENiYENHYENI gdb(1) S:a|U-oO/AAU:
   1/4AE(c)Iu^2-oc-a-oCUR-o(R)e|LYENX"O!AYENHAENOTd"t^2I crash
   (R)E-a-o ^1e>>U-aNOT-oA!C

   |nDEGO!A|p-aGS:A|^3^2A:CURGYENx^1q,-L-|OYENB|^3DEG-:-oAE"g!AYENiYENH+-N
   gdb(1) ^3](c)w |">>.-oYDEG-L-?u!C^3o 1/4ES:AYENiYENH|bCUR@YENx
   3/4-: 3/4^1CURCURYENI gdb(1) YENhDEG-L-?uYENtCUR@YENx,I-a-o
   kernel!AYENiYENHDEGo|ae-a-oYEN]NOTA^3](c)wCURCURA_AI!B|b kernel
   `i(c)l 1/2XCURCURCUR@"B"BDEGo|aeuYEN
   uYEN!A'N^1^3|bCUR@-e"IYENI-aIu{|!CURWDEG-L-?uCUR@
   1/4E!CYENN(c)o"S|^3CURDEG>>o 3/4-:.|NOTDEGDEG-L-?u|O^3],m "aYENx"A
   3/4F^1q,-L-!A(c)OYENHS:UAU"S|^3^3o 1/4E-a+-^1L!C

   [Bill ,EYENR!G"S:US:NCURF'-L-"`iCUR@AI!G|p-aGS:A|^3+-ODEGE DDB |O
   kernel CUR]CURw,gP:iCURJDEG-L-?u 3/4^1!AYENiYENH|b DDB
   (c)RYENO|CCURUYEN' 'panic'!A+-j-c-^2-L-YENI panic (AU|^3 crash
   dump)!CCUR]|^3YENi-`a|b panic P:YENNOTq(R)E|AP:iCURJDEG-L-?u
   3/4^1!A |p-aG^3o 1/4E-a-o,U:!A?eCURJ
   'continue'!A+-uuUYEN|'N.|S:^1|" crash dump!C" -ed]

   18.15. NOTDEGCURDEG>>o dlsym() CUR-L--`a 3/4THS:@ ELF DEGo|aeAE!H

   |b ELF CUR@"t|C-a-oCURu"aCURCUR!ACUR-o(c)wNOTOCUR-L-.|AAy dynamic
   linker NOTY"`iDEGo|ae AE,I(c)w,qCURFth"C, symbol!C(c)OYENH dlsym()
   "S|^3?`i -akYENIAC,YENN(c)IYENs dlopen(NULL, flags) "u+-o-a-o
   handle!AYENIYEN|YENh.j'M|^3"-o"C, symbol CUR@(c)w.|YEN-c-+-N!C

   |p-aGS:A.QnYENI dlsym() S:a:YENXNOTYO process
   -a-oYENDDEGo|aeAECURCUR|^3th"C, symbol!A<<hn|b link (R)E^1i ELF
   linker (ld(1)) YEN[CURW -export-dynamic ^3oODEGN 1/4AE!C

   18.16. S:Un|p|o 1/4WYEN[(c)I'iCURO: kernel -`a(c)wS:}-a-o-aAAP:!!H

   ^1w^3]ENOTO!AFreeBSD 3.x -a-o kernel
   YENiYENH(c)wS:}-a-o-aAAP:!NOTO 256 MB |O FreeBSD 4.x YENiYENH"`i 1
   GB!C|p-aGNOTO-oo,ot^2u:NOTU.i<<-a-o|o/-aA 3/4^1 ("O|pCURj<<NOT FTP
   (c)I HTTP |o/-aA 3/4^1)!AS:ACUR]^3\.|uo^2{ 256 MB
   YENi-`aCUR-L-CURjDEG-:!C

   (c)OYENH!An|p|o
   1/4WYEN[(c)wS:}-aAAP:!(c)O!Hn+-q"aCURe+-uUCURa!C-oYENy-oYENyS:iP:D
   kernel
   YEN>>"n<<O-d,uCURj-aAAP:!u^1|UCURv!C"a:|,!ANOTJuMNOTO|b(c)wS:}-aAAP:!-a-o^3ICURW
   +-,u:CURJ kernel!A(c)OYENHAUn
   1/2OS:C,u:CURJ-a-o|`iS:}!ACUR~CUR-L-.|(c)M<<e+-(c)wS:}-a-o 1/2d^3o
   <<AA|!C

   1/4WYEN[ src/sys/i386/include/pmap.h ,I-a-o NKPDE
   'NYENiYENH^1F|"^2A:CUR@OYENO/ 1/4D-!C1 GB -a-o(c)wS:}-aAAP:!.|
   ^1^3^3o 1/4E!G

 #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

   n-oaYENX NKPDE -a-oYEN? 1/2TE!A+-N.Qn-a-o-aAAP:!CURjCURp (YENH
   megabyte NOTDEG^3ae|`i)DEG-L-YENH 4!A+-uuU^3ae CPU  3/4-: 3/4^1'i
   1!A Au CPU <<hNOTO'i 2!C

   n,N"M^2A:CURGODEGYAD!AYEN^2P:.|U|ae-oaYENX kernel
   ^3Q,u:CURJ-a-o|`iS:}!G"DYENX 0x100100000 'i+-
   1/4(c)wS:}-aAAP:!CURjCURp-a-oE(YENH byte NOTDEG^3ae|`i)!A|p 1 GB
   CURjCURp'NNOTO 0xc0100000!CS:asrc/sys/i386/conf/Makefile.i386
   ,I-a-o LOAD_ADDRESS ^3]|"^3oOE!Q+-uuU|b
   src/sys/i386/conf/kernel.script CURCUR!A+-N section
   |C-ai^3I<<e+--a-o location counter ^3]|"NOTU|P-a-oE!A|pCURU!G

 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)    }

   uM<<a<<.s 1/2sA:P:+-z-a-o kernel!C+-zYENi-`a.||bDEGo|ae
   ps(1)!Btop(1) ^3oAth-a-ou{|!(R)E,I"`iDEGYAD!Qmake world
   A^3,O'NYENiYENH,N"M ((c)IS:aS:i^1L-a-o pmap.h  1/2AE>>s"`i
   /usr/include/vm/ CURU!A|ACURaDEGE 1/2sA:P: libkvm!Aps(1) AU|^3
   top(1))!C

   -a`.N!Gkernel (c)O-`a(c)wS:}-a-o-aAAP:!CURjCURpYEN^2P:.NOTO 4
   megabytes -a-o? 1/4AE!C

   [David Greenman <dg@FreeBSD.org> ,EYENR!GS:U>>{NOTDEG kernel
   (c)wS:}-aAAP:!CURjCURpA^3,OnNOTO 2 -a-o 1/4 3/4!A|yCUR-L-CURj
   1/2T(c)w^3oCUR@AI!CAA-a-o+-ODEGEu{|!.|DEGE"`i high order address
   bits!ADEGO+-oYEN|DEG^2^3]|U:CURO:|^3 256 MB!C]

     --------------------------------------------------------------

                            Chapter 19 .PAA

   Vanilla Shu

     DEG^2|p+-z|b^3oYEN-: FAQ                                         
     CURCURS:a:"`i?u>>~-a-o|aCURe!A(c)INOTO+-z.Q                    
     1/4WYEN["C,NOTAE>>o!A  1/2D- 1/4g<<E<<H"`i FAQ Maintainer      
     <faq@FreeBSD.org> !CS:UI<<D+-`.PAA+-z-a-o<<O/A:^3!A            
     |]NOTDEG+-z-a-o<<O/A:^3AAy^3oYEN-:CURaaYENoAAU:+-oS:o|n!I      
                                                --FreeBSD Core Team   

   Jordan K. Hubbard <jkh@FreeBSD.org>

           CUR-L-DEG+--a-oS:o.s^1L(R)E-a-o FAQ

   Doug White <dwhite@FreeBSD.org>

           ,g+-`|b freebsd-questions CURW|^u-aDEGYAD

   Jo:rg Wunsch <joerg@FreeBSD.org>

           ,g+-`|b Usenet CURW|^u-aDEGYAD

   Garrett Wollman <wollman@FreeBSD.org>

           Networking and formatting

   Jim Lowe

           Multicast information

   Peter da Silva <pds@FreeBSD.org>

           FreeBSD FAQ ^3oYEN-:CURaaYENo-a-oYEN'|rWCURu

   The FreeBSD Team

           Kvetching, moaning, submitting data

   ^1i(c)o"-o"C,'?,g^1i^3oYEN-: FAQ
   '-L-"NADEGS:U!A|OS:UI"S'-L-"`i-a-oCURHI!A
   S:UIYENNDEGJ-a-o.PAA+-z!I

     --------------------------------------------------------------

              Chapter 20 Ports and Packages +-`"-L-DEGYAD

   Yi-Feng Tzeng

   20.1. |p|oYENuS:`i"u tarball!H

   20.2. |p|oP:EDEGu"`i,NP:} tarball-a-o"BAEJ!H

   20.3. |p|oP:EDEGu"`i,NP:} tarball "A,ECURW(c)xCURe'-L-"N-a-o patch
   !H

   20.4. |p|o|w,ECUR@O.s-a-o port!H

   20.5. |p|o|w,ECUR@O.s-a-o port!A"AYEN'YEN](package)DEG_"O!H

   20.6. |p|oYEN'YEN]CUR@O port!A"A+-N"a:(c)O|^3NOTU"I-a-o ports
   CUR]YEN'YEN]DEG_"O!H

   20.7. |p|o^1iCUR@OCURw,g|w,E-a-o port YEN'YEN]!H

   20.8. |p|o^2M^2z ports  1/2s?e'AP:!(c)O^2-L-YENI-a-o
   1/4E|s,e(R)AE!H

   20.9. |p|o^2M^2z ports  1/2s?e'AP:!(c)O^2-L-YENI-a-o
   1/4E|s,e(R)AE!AYENHCURI tarball AE!H

   20.10. |p|o|b|w,E ports <<eNOTd,ss(c)O"I?`a-a-oNOTUAo:(R)MYENo!H

   20.11. |p|o^2 3/4DEG-L-CURw|w,E-a-o ports!H

   20.12. |p|oCUR@"O:^2 3/4DEG-L-(c)ONOTU"I-a-o ports!H

   20.13. |p|o<<.s|w,ECURw|w,E^1L-a-o ports!H

   20.14. |p|oYENHAo:Aa:|r.j'M ports!H

   20.15. |p|oCURE-AACURw|w,E-a-o ports!H

   20.16. |p|oNOTd,ssYENO/<<e"t^2I|w,ECURFth"C,(R)MYENo!H

   20.17.
   |p|oNOTd,ssYENO/<<e"t^2I|^3"S|^3|w,E^3oOAo:Aa:|r-a-o(R)MYENo!H

   20.18. |p|oNOTd,ssNOTYOAE(R) *NOTOA:Y(c)oth"C,(R)MYENo!H

   20.19. |p|oNOTd,ssNOTYO(R)MYENo|w,ECURFth"C,AE(R) *!H

   20.20. |p|o|w,EAA-a(c)-a-o ports!H

   20.21. |p|oS:o.s ports Mk!H

   20.22. |p|o,N"M|w,E ports (R)EYENX^2{ sed -i -a-o?u>>~!H

   20.23. |p|o|CYENX(c)O|^3YENiYENHCURE-AA-a-o ports!H

   20.24. |p|o+-o-a 3/4 ports (c)O'-L-"N-a-o 1/2sA:P:DEGN 1/4AE!H

   20.25. |p|oCURaDEGEYEN[CURJ 1/2sA:P: ports -a-oDEGN 1/4AE!H

   20.26. |p|o<<u:(c)w ports -a-o|w,E,o(R)|!H

   20.27. |w,E ports YENX^2{ FORCE_PKG_REGISTER -a-o?u>>~DEGT(R)S:

   20.28. |w,E ports YENX^2{ Shared object libintl.so.X not found
   -a-o?u>>~DEGT(R)S:

   20.29. |p|o|w,E packages!H

   20.30. |p|o+-j"i|w,E packages!H

   20.31. |p|oNOTd,ss packages >>P"a:YENL packages
   CURS:P:!-a-oNOTU"I(c)E!H

   20.32. |p|o|w,E>>.-oY-a-o packages!H

   20.33. |p|oS:o.s INDEX ^1i.O-ai!H

   20.34. |p|oS:o.s INDEX HTML!H

   20.35. |p|oDEGw^1iNOTY"C, ports CUR-L-DEGu ports update!H

   20.36. make deinstall >>P pkg_delete |^3CURDEG>>oCUR-L-|P!H

   20.1. |p|oYENuS:`i"u tarball!H

   |p-aGYENuS:AE+-aeS:`i"u tarball
   CURU"O-a-o,U:!AP:E>>Y?eCURJYENHCURU<<u:YENOS:YYENi!G

 # make fetch

   |p-aGNOTOnS:`i"u^3aeCUR@-a-o port!AYENH editors/joe NOTDEG"O!G

 # cd /usr/ports/editors/joe
 # make fetch

   "-o>>o!A^1w^3].|+-N editors/joe -a-o tarball CURU,u:|U:
   /usr/ports/distfiles YENO/?yCURU!C

   |p-aGNOTOS:AE+-aeS:`i"u|w,E|^1 ports (c)O|^3NOTUAo:NOTU"I ports
   -a-o tarball!AYENH systuils/portupgrade NOTDEG"O-a-o,U:!A <<h!G

 # cd /usr/ports/systuils/portupgrade
 # make fetch-recursive

   ^1w^3].|+-N|^1 port >>P(c)O|^3>>Yn-a-o"a:YENL port -a-o
   tarball!ACURU,u:|U: /usr/ports/distfiles YENO/?yCURU!C

   |p-aGNOTOS:AE+-aeS:`i"uYENth^3!(c)O|^3 ports -a-o tarball !A<<h!G

 # cd /usr/ports
 # make fetch

   <<h.|(c)O+-NYENth^3!(c)O|^3 ports -a-o tarball CURU,u:|U:
   /usr/ports/distfiles YENO/?yCURU!C

   |p-aGNOTOS:AE+-aeS:`i"u ftp CURAAthCURU(c)O|^3 ports -a-o tarball
   !A<<h!G

 # cd /usr/ports/ftp
 # make fetch-recursive

   <<h.|(c)O+-N ftp CURAAthCURU(c)O|^3 ports -a-o tarball
   ^3-L-CURU,u:|U: /usr/ports/distfiles YENO/?yCURU!C

   20.2. |p|oP:EDEGu"`i,NP:} tarball-a-o"BAEJ!H

   |^3(R)EO^2ss-oD|UCURv patch `i(c)l
   1/2X-a-o(R)EO!A.|<<U:+-`YENI"`i^3oOYEN\-`a!CYENH editors/joe
   NOTDEG"O!G

 # cd /usr/ports/editors/joe
 # make extract

   .|+-N tarball,NP:}|U: /usr/ports/editors/joe/work YENO/?yCURU!C

   20.3. |p|oP:EDEGu"`i,NP:} tarball "A,ECURW(c)xCURe'-L-"N-a-o patch
   !H

   |^1-ak>>P make extract
   -a-oCURe-ak|^3CUR@"C,Ath|u:!ACUR-L-|P(c)oNOTOYENy,ECURW(c)xCURe'-L-"N-a-o
   patch!A|A|ae patch |UCURv-a-o *YEN?!C |^3(R)EO^2ss-oD|UCURv patch
   `i(c)l 1/2X-a-o(R)EO!A <<h^3oOCURe|!YEN?|n^2AA|X+-z-a-o>>Y"D!C
   YENH editors/joe NOTDEG"O!G

 # cd /usr/ports/editors/joe

 # make patch

   .|+-N tarball,NP:}|U: /usr/ports/editors/joe/work YENO/?yCURU
   !A"A,ECURW(c)xCURe'-L-"N-a-o patch!C

   20.4. |p|o|w,ECUR@O.s-a-o port!H

   |p-aG"t^2ICURWYEN 1/4|w,E|^1^3nAAe!A<<hYENiYENH?i
   3/4U:|w,ECUR@O.s-a-o port!C YENH editors/joe
   NOTDEG"O-a-o,U:!A<<h!G

 # cd /usr/ports/editors/joe

 # make install

   |p|^1.||b"t^2ICURW|w,ECUR@O.s-a-o joe ^3nAAe!C
   |p-aG>>Yn|b|w,ES:^1|"<<a!ACUR@"O:^2MDEG-L-
   1/2s?e(R)E'A(c)O-dCURU"O-a-o 1/4E|sYENO/?y!A<<hYENiDEGt|X make
   clean -a-oCURe-akCUR@DEG_"IYENI!A|p!G

 # cd /usr/ports/editors/joe

 # make clean

   |p-aG.QnCUR@|,^2M+- 1/4(c)O|^3 ports ^2-L-YENI-a-o
   1/4E|s,e(R)AE!A<<hYENun|^"`i ports -a-o(R)UYENO/?yDEGo|aeS:YYENi!G

 # cd /usr/ports

 # make clean

   20.5. |p|o|w,ECUR@O.s-a-o port!A"AYEN'YEN](package)DEG_"O!H

   +-N|w,ES:^1|"-a-o^3nAAeYEN'YEN]DEG_"O!A|^3^3\|h<<KS:Q(c)E!GYEN]NOTA|bAOP:DEG"t^2ICURCUR!AYENi"N"a:YEN|
   3/4-: 3/4^1"IYENI!A (c)I+-NYEN
   1/4"O|^1^3nAAeYENXDEGYADYENi<<.sS:QYENI|^1 package
   <<.sS:O:^3t|w,E!C YENH editors/joe NOTDEG"O-a-o,U:!A<<h!G

 # cd /usr/ports/editors/joe

 # make package

   |p|^1.||b"t^2ICURW|w,ECUR@O.s-a-o joe
   ^3nAAe!A"A+-N|^1^3nAAeYEN'YEN](package)DEG_"O!C package ^1w^3].||b
   /usr/ports/editors/joe
   YENO/?yCURU!A|p-aGS:AE+-aeP:DEGCURCUR-oTH^2z-a-o,U:!A<<O/A:^3DEGu|pCURU-a-o"BAEJ!G

 # mkdir -p /usr/ports/packages

   YENH<<aYEN'YEN]-a-o packages
   ^3-L-.||s(c)n|b|^1YENO/?yCURU!A"AYENB"t^2I.||UDEGEDEGuCURAAth!AYENHCURe<<K-oTH^2z!C
   |p-aG>>Yn|b|w,ES:^1|"<<a!ACUR@"O:^2MDEG-L-
   1/2s?e(R)E'A(c)O-dCURU"O-a-o 1/4E|sYENO/?y!A<<hYENiDEGt|X make
   clean CUR@DEG_"IYENI!A|p!G

 # cd /usr/ports/editors/joe

 # make package clean

   20.6. |p|oYEN'YEN]CUR@O port!A"A+-N"a:(c)O|^3NOTU"I-a-o ports
   CUR]YEN'YEN]DEG_"O!H

   |]NOTDEG make package YENu|^3YEN'YEN]^3aeCUR@(R)MYENo!A
   CURCURP:!"I?`a-a-o ports
   "A"S|^3CUR@DEG_YEN'YEN]!A^3o.|YENX^2{CUR@O+-`^1J"`i-a-oDEGYAD!G
   'NNOTO|p-aGCUR@O port >>Yn"I?`a"a:YEN|-a-o
   ports!A"-o>>oYEN^2P:.+-N"a:YEN| ports
   CUR]CUR@DEG_YEN'YEN]!AS:_<<h|w,E packages
   .||^3NOTU"I(c)E-a-oDEGYAD!C YENH sysutils/portupgrade NOTDEG"O!G

 # cd /usr/ports/sysutils/portupgrade

 # make DEPENDS_TARGET=package package

   |p|^1.|^1i(c)O|^3 portupgrade (c)ONOTU"I?`a-a-o ports
   ^3-L-CUR@"O:YEN'YEN]!ACUR]YEN]NOTA|UCURvYEN>>"!C

   20.7. |p|o^1iCUR@OCURw,g|w,E-a-o port YEN'YEN]!H

   |p-aG|w,E|nCUR@O(R)MYENo!A"AE<<e"AYEN
   1/4YEN'YEN]!A"AE<<a.QYEN'YEN]-a-o,U:!A<<h!G YENH editors/joe
   NOTDEG"O!G

 # cd /var/db/pkg

 # pkg_create -b joe-{-a(c)YEN>>,^1}

   .|+-NCURw|w,E-a-o port YEN'YEN]DEG_"O!A(c)n|b /var/db/pkg
   YENO/?yCURU!C

   20.8. |p|o^2M^2z ports  1/2s?e'AP:!(c)O^2-L-YENI-a-o
   1/4E|s,e(R)AE!H

   |b|w,E port -a-o(R)EO!A.||^3
   1/2sA:P:'AP:!(c)O>>Yn-a-oCURuS:@YENO/?y(work)!A|]|^1^3q+-`|w,E|nCUR@O(R)MYENo<<a!A.|^2MDEG-L-|^1
   1/4E|sYENO/?y!AYENH,`NOTUuw-oD--aAAP:!!C YENH editors/joe
   NOTDEG"O!G

 # cd /usr/ports/editors/joe

 # make clean

   |p-aGNOTOS:AE+-ae^2MDEG-L-(c)O|^3 ports -a-o 1/4E|sYENO/?y!A<<h!G

 # cd /usr/ports

 # make clean

   |p-aGNOTOS:AE+-ae^2MDEG-L-(c)O|^3 ftp CURAAth-a-o
   1/4E|sYENO/?y!A<<h!G

 # cd /usr/ports/ftp

 # make clean

   20.9. |p|o^2M^2z ports  1/2s?e'AP:!(c)O^2-L-YENI-a-o
   1/4E|s,e(R)AE!AYENHCURI tarball AE!H

   |b make clean P:EYENuNOTO^2MDEG-L-
   1/2s?e'AP:!(c)O>>Yn-a-oCURuS:@YENO/?y(work)!A"A"S|^3+-N 1/2sA:P:
   ports (R)ECUR@"O:CURU,u:-a-o tarball S:RDEG-L-(NOTU^1iA^3CURS:
   tarball ^1w^3].||s(c)n|b /usr/ports/distfiles) |p-aG.QS:a tarball
   CUR@"O:^2MDEG-L--a-o,U:!AYENH editors/joe NOTDEG"O!G

 # cd /usr/ports/editors/joe

 # make distclean

   make distclean -a-o"BAEJYEN]S:tCURF make clean
   -a-oYEN\-`a!ACUR]'NNOTO>>!DEG-L-CURF.|S:RDEG-L- tarball
   YEN~!AAU.|CUR@"O:^2MDEG-L- 1/2sA:P:(R)E-a-o 1/4E|s work YENO/?y!C

   |p-aGNOTOS:AE+-ae^2MDEG-L-(c)O|^3 ports -a-o 1/4E|s work
   YENO/?yCURI tarball!A<<h!G

 # cd /usr/ports

 # make distclean

   |O|p-aGNOTOS:AE+-ae^2MDEG-L-(c)O|^3 ftp CURAAth-a-o work
   YENO/?yCURI tarball!A<<h!G

 # cd /usr/ports/ftp

 # make distclean

   20.10. |p|o|b|w,E ports <<eNOTd,ss(c)O"I?`a-a-oNOTUAo:(R)MYENo!H

   |b|w,E ports <<e!AYENiYENHNOTd,ss(c)O"I?`a-a-oNOTUAo:(R)MYENo!C
   YENH mail/p5-Mail-SpamAssassin NOTDEG"O!G

 # cd /usr/ports/mail/p5-Mail-SpamAssassin

 # make all-depends-list

   make all-depends-list
   AAaYENU:|^1(R)MYENo(c)O|^3NOTU"I-a-o(R)MYENo!C

 # cd /usr/ports/mail/p5-Mail-SpamAssassin

 # make pretty-print-build-depends-list

   make all-depends-list AAaYENU:|^1(R)MYENo|b
   1/2sA:P:'AP:!(c)O>>Yn-a-o(R)MYENo!C

 # cd /usr/ports/mail/p5-Mail-SpamAssassin

 # make pretty-print-run-depends-list

   make all-depends-list
   AAaYENU:|^1(R)MYENonDEGo|ae(R)E(c)O>>Yn-a-o(R)MYENo!C

   20.11. |p|o^2 3/4DEG-L-CURw|w,E-a-o ports!H

   YENH editors/joe NOTDEG"O!G

 # cd /usr/ports/editors/joe

 # make deinstall

   (c)INOTO"IYENI pkg_delete!G

 # pkg_delete joe-{version}

   |^3(R)EO(R)MYENoCURS:P:!-a-oNOTU"I(c)E.| 3/4EPuL-ak-a 1/2+-u^2
   3/4DEG-L-!A|p-aGn+-j"i^2 3/4DEG-L--a-o,U:!A<<h!G

 # pkg_delete -f joe-{version}

   |y 1/2D--a`.N!G<<U:|^3YENi-`a.|
   3/4EP"a:YEN|NOTU"I"`i^3o^3nAAe-a-o(R)MYENoDEGo|aeDEG_"OYENX^2{DEGYAD!C

   |U:(c)oCURG-aI-a-o(R)tS:O!A 1/2D-DEGN|O make deinstall >>P
   pkg_delete |^3CURDEG>>oCUR-L-|P

   20.12. |p|oCUR@"O:^2 3/4DEG-L-(c)ONOTU"I-a-o ports!H

   YENH sysutils/portupgrade NOTDEG"O!G

 # cd /usr/ports/sysutils/portupgrade

 # make deinstall-depends

   DEGo|ae|^1"BAEJ<<e!A 1/2D--a`.NNOTOS:_.|^2
   3/4DEG-L-"a:YENL(R)MYENoCUR]|^3|@|PNOTU"I-a-o^3!CURA!C<<O/A:^3YENyDEGN|O
   make-depends-list -a-oCURe-ak"OAENOTd!C

   (c)INOTO"IYENI

 pkg_delete

   ^3o 1/4EYCUR'|^3NOTU"I,O(R)MYENo-a-o,U:!A.|YENyA:uS:i|OCUR-L-.|^2
   3/4DEG-L-!CDEG-L-<<D|^3YENtYEN~YEN[CURF -f DEGN 1/4AE"O+-j"i^2
   3/4DEG-L-!C

 # pkg_delete -r portupgrade-{version}

   |U:(c)oCURG-aI-a-o(R)tS:O!A 1/2D-DEGN|O make deinstall >>P
   pkg_delete |^3CURDEG>>oCUR-L-|P

   20.13. |p|o<<.s|w,ECURw|w,E^1L-a-o ports!H

   <<.s|w,E-a-o<<e'-L-NOTO!GCURS:<<e|^3|w,E^1L(c)IYENO/<<eCURw|w,E!CYENH
   editors/joe NOTDEG"O!G

 # cd /usr/ports/editors/joe

 # make deinstall clean install

   (c)INOTO

 # cd /usr/ports/editors/joe

 # make reinstall

   20.14. |p|oYENHAo:Aa:|r.j'M ports!H

   |p-aGn+-qYENth^3!-a-o ports collection CURCURS:a:'M>>PAo:Aa:|r
   "ldap" |^3Ao:-a-o ports!A<<h!G

 # cd /usr/ports

 # make search key=ldap

   |p-aGYENun+-q>>P ftp NOTUAo:-a-o ports CURUS:a:'M>>PAo:Aa:|r
   "ldap" |^3Ao:-a-o ports!A<<h!G

 # cd /usr/ports/ftp

 # make search key=ldap

   AU|^3YENtCUR@OYENI-ak!ACURe-akYENuNOTO+-N key '<<|"
   name!C|p-aGCURw,g-a 3/4^1Dn.j'M ports
   -a-o|W-oU!A(c)IYENu.QS:a:|W-oUNOTUAo:-a-oAo:Aa:|r "ldap"!A <<h!G

 # cd /usr/ports

 # make search name=ldap

   20.15. |p|oCURE-AACURw|w,E-a-o ports!H

   |p-aGCURw,g|w,E(R)MYENo!A"AE<<a+-yCURE-AA-a-o,U:!AYEN^2P:.YENy^2
   3/4DEG-L-AA-a(c)-a-o port!CYENH editors/joe NOTDEG"O!G

 # cd /usr/ports/editors/joe

 # make clean reinstall

   20.16. |p|oNOTd,ssYENO/<<e"t^2I|w,ECURFth"C,(R)MYENo!H

   NOTd,ssYENO/<<e"t^2ICURw|w,E-a-oYENth^3!(R)MYENo!G

 # pkg_info

   20.17.
   |p|oNOTd,ssYENO/<<e"t^2I|^3"S|^3|w,E^3oOAo:Aa:|r-a-o(R)MYENo!H

   DEG^2^3]nS:a:-a-oAo:Aa:|rNOTO joe -a-o,U:!G

 # pkg_info | grep joe

   20.18. |p|oNOTd,ssNOTYOAE(R) *NOTOA:Y(c)oth"C,(R)MYENo!H

   |p-aG.QNOTd,ss /usr/local/bin/joe
   NOTOA:Y(c)othO(R)MYENo-a-o,U:!A<<h!G

 # pkg_info -W /usr/local/bin/joe

   |p-aG"S|^3|^P:C,YENo|o,eDEGT-a-o,U:!AYENN-aiuU^3oOAE(R) *NOTOYENN
   FreeBSD CUR-o<<O/-a-o!C

   20.19. |p|oNOTd,ssNOTYO(R)MYENo|w,ECURFth"C,AE(R) *!H

   |p-aG.QNOTd,ssYENO/<<e"t^2I(c)O|w,E-a-o joe YEN]S:tCURFth"C,AE(R)
   *!A<<h!G

 # pkg_info -L /var/db/pkg/joe-{version}

   20.20. |p|o|w,EAA-a(c)-a-o ports!H

   |^3(R)EO.||]NOTDEGNOTU"I(c)E!A(c)INOTO.s-a(c)|^3DEGYAD!A|O.|.Q,EAA-a(c)YEN>>-a-o(R)MYENo!C
   ^3o,ICURP:^2D--a-oCURe-akNOTOS:QYENI CVS
   -a-o|n^3B!A|^Ak"`iYENH<<eAA-a(c)YEN>>|s|b-a-oCUReCURl!AYENH|w,EAA-a(c)YEN>>-a-o(R)MYENo!C

   -oYENy!AYS:UIn|^'_"`iNOTYCUR@O(R)MYENo-a-o-a(c)YEN>>(R)E!A>>YnYENhNOTd,ss
   FreeBSD ports CVS repository!C ^3I+-`"-L--a-o'NNOTO Freshports
   -oo-,!B FreeBSD -a-o Mailing FreeBSD cvs (c)INOTO FreeBSD ports
   cvsweb!C

   NOTd"`i,O(R)MYENo-a(c)YEN>>(c)O"I|s-a-oCUReCURl<<a!A'N *S:i CVS
   tag!CCUR@-e^1w^3] ports -a-o CVS tag .| 1/4g|b
   /usr/share/examples/cvsup/ports-supfile !A|pn|^.^1"`i 2002/10/05
   ,^1-a-o,U:!A<<h!G

 # vi /usr/share/examples/cvsup/ports-supfile

 *default date=2002.10.05.00.00.00  #+-N date S:i|".iCURe

   uM<<a<<o:.OCUR@-e CVSup (c)I csup -a-o(R)EOCUR@ 1/4E!ADEGo|ae
   CVSup (c)I csup (make update)!A|^1(R)E-a-o ports collections
   'N.||^"`i.i(R)E-a-o+-!S:I!A"-o>>o,O(R)MYENo-a-oAA-a(c)CUR].|YENX^2{|b
   ports collections CURCUR!AYENun|w,ES:YYENi!C

   |p-aGP:ENOTO.Q|^.^1NOTY^3!YEN-:-a-o
   ports!A<<hYEN^2P:.YEN[CURWABYEN~-a-o,eDEGT!A|pP:ES:AE+-aeS:a
   lang/perl5.8 |^.^1!A |OS:UI+-o-a 3/4|^1A:Y(c)o lang
   CURCUR-a-oCUR@CURa:!A<<h!G

 # vi /usr/share/examples/cvsup/ports-supfile

 #ports-all #+-N ports-all  1/4D-YENU:DEG_"O

 ports-lang #YEN[CURJ^3o|ae

   ^3I<<a!ADEGo|ae CVSup (c)I csup
   !A"A|w,ES:YYENi!CYENO/<<eYS:AE+-ae^3ae?W|^.^1^3aeCUR@-a-o
   port!A<<hCURn,u^3A.D-!C

   20.21. |p|oS:o.s ports Mk!H

   Mk (/usr/ports/Mk) NOTO 1/2sA:P: ports
   (R)E(c)ODEGN|O-a-o^3](c)w!A|^3(R)EYuoYENI ports collections
   CURO.s!A|O 3/4EP Mk
   -a-oCUR-o(R)eCUR-L-^2AA!A|^1(R)E'NNOTOA^3,OS:o.s Mk
   -a-o(R)EOCURF!C

 # cd /usr/src

 # make update

 # cd /usr/src/share/mk

 # make install

   20.22. |p|o,N"M|w,E ports (R)EYENX^2{ sed -i -a-o?u>>~!H

   |]NOTDEG BSD style -a-o sed !ACUR]'NNOTO BSD YEN>>"|U|^3-a-o sed
   !A>>PCUR@"C, ports  1/2sA:P:'AP:!(c)ODEGo|ae-a-o sed
   CUR-L-CUR@P!A(c)OYENH.| 3/4EPCUR@"C,>>y-ak?u>>~!C|^1(R)EYENy|w,E
   sed_inplace
   (textproc/sed_inplace)!AuM<<a|A|w,E`iYEN>>uL-ak|w,E-a-o ports!G

 # make -DUSE_REINPLACE install

   20.23. |p|o|CYENX(c)O|^3YENiYENHCURE-AA-a-o ports!H

   ports collection -a-oS:o.s^3t<< *<<U:S:O:!A|b"C|,S:o.s ports
   collections <<a!A(c)^1(c)^1.|YENX^2{CURnYENO/<<e^2{
   |b|w,E-a-o(R)MYENoAU.s-a-o-a(c)YEN>>!AYENiYENHYENO"t^2I|U|ae
   3/4a^2z"A'-L-"NYENiCURE-AA(R)MYENo-a-o|C-ai!G

 # pkg_version -c

   20.24. |p|o+-o-a 3/4 ports (c)O'-L-"N-a-o 1/2sA:P:DEGN 1/4AE!H

   (c)O|^3-a-o ports collections CURCUR(c)O'-L-"N-a-o 1/2sA:P:DEGN
   1/4AE^3-L-.||b^1iA^3-a-o Makefile AE(R) *CUR-o,Oz!A |p
   sysutils/portupgrade -a-o,U:!A<<hNOTO|`i|b
   /usr/ports/sysutils/portupgrade/Makefile AE(R) *CURU!C

 # cd /usr/ports/sysutils/portupgrade

 # make -DNOPORTDOCS install

   "-o>>o|w,E|^1 ports (R)E!A.|+-N NOPORTDOCS
   (c)O^1iA^3-a-oNOTUAo:DEGN 1/4AE<<u:(c)wP:iYENh!C

   |^3(R)EO^3](c)w,uCURH(c)ECURAE-a-o ports .||b|w,E<<e'-L-"NDEGN
   1/4AE"N?i 3/4U:!A|yNOTO"a:^1eCURj^3!YEN-:-a-o ports ^3-L-"S|^3'-L-
   "N!A|]|^1YEN^2P:.|U|aeYENh.j'MYENi 1/2sA:P:-a-oDEGN
   1/4AE!A|b|^1S:U'-L-"N-a-oCURe|!|pCURU!G

 # cd /usr/ports/sysutils/portupgrade

 # grep defined Makefile

   |p|^1'XYENGYENiYENH-a 3/4^1D(c)O|^3'-L-"N-a-oYENi 1/2sA:P:DEGN
   1/4AE!AAo:uM|^3(R)E.||hYENX"a:YEN|-a-o,e(R)AE!ACUR-L-.|^3oO
   1/2T^1eNOTOCUR@OCUR-L- ?uYENiDEGN|O-a-oCURe|!!C

   20.25. |p|oCURaDEGEYEN[CURJ 1/2sA:P: ports -a-oDEGN 1/4AE!H

   |b <<e+-(c)Oz -a-oCURe-ak!ANOTO ports collections
   |^3'-L-"N-a-o<<e'-L-CURS:CURU!A|^3(R)EO"ACUR-L-NOTO(c)O|^3,O^3nAAe(c)OCURa:'(c)-a-oDEGN
   1/4AE^3-L-.||NOT-C,|b ports collections
   CURCUR!A|]|^1|^3(R)EO.|>>YnCURaDEGEYEN[CURJ 1/2sA:P:-a-oDEGN
   1/4AE!C

   |p ftp/pure-ftpd CURCUR!A|p-aGCUR-L-.QS:a inetd -a-oCURa:'(c)
   1/2sCURJ-a-o?iP:u!A"A"S|^3^3Q ports collections
   (c)O-C,CURJ!A|]|^1YEN^2P:.CURaDEGEYEN[CURW^3oO 1/2sA:P:DEGN
   1/4AE!A|pCURU!G

 # cd /usr/ports/ftp/pure-ftpd

 # make CONFIGURE_ARGS+="--without-inetd" install

   20.26. |p|o<<u:(c)w ports -a-o|w,E,o(R)|!H

   ^1w^3] ports collecions CURw|w+-AE|w,E-a-o,o(R)|
   (/usr/local/)!A|p-aGCUR-L-.Q+-N(R)MYENo|w,E|b^1w^3],o(R)|-a-o,U:!AYENiYENHCURaDEGE<<u:(c)w|w,E,o(R)|!CYENH
   editors/joe NOTDEG"O!A<<h!G

 # cd /usr/ports/editors/joe

 # make PREFIX=/usr install

   "-o>>o joe 'N.|+-NAE(R) *^1iA^3|b /usr
   YENO/?yCURU!A|OCUR-L-NOTO^1w^3]-a-o /usr/local YENO/?yCURU!C

   20.27. |w,E ports YENX^2{ FORCE_PKG_REGISTER -a-o?u>>~DEGT(R)S:

   1/2D-DEGN|O Ohaha -a-o FAQ!C

   20.28. |w,E ports YENX^2{ Shared object libintl.so.X not found
   -a-o?u>>~DEGT(R)S:

   1/2D-DEGN|O Ohaha -a-o FAQ!C

   20.29. |p|o|w,E packages!H

   YENO/<<e FreeBSD -a-o packages NOTOYENN .tgz
   (c)OYEN'YEN]!C|p-aG.Q|w,ECUR@O packages !AYENi"IYENI
   pkg_add!A|p|w,ECUR@O joe -a-o tgz!G

 # pkg_add joe-{version}.tgz

   20.30. |p|o+-j"i|w,E packages!H

   YENN(c)o|^3"C, packages .||^3>>P"a:YENL packages
   NOTU"I(c)E-a-oAo:<<Y!A(c)OYENHYEN^2P:.YENy|ae|w,E"-o"C, packages
   CUR~ -`aYEN?+-`|w,E!C

   |p-aGP:.n+-j"i|w,E packages
   !AYENiYENHCUR-L-P:.|w,E"-o"C,|^3NOTU"I(c)E packages
   !A|yn-a`.N-a-oNOTO+-j"i|w,E -a-ou^2-aGYENi-`a.|
   3/4EPDEGo|ae(c)I^1BS:@-a-oCUR-L-YEN?+-`!C+-j"i|w,E packages
   -a-o<<u:YENO|pCURU!A|p+-j"i|w,ECUR@O joe -a-o tgz!G

 # pkg_add -f joe-{version}.tgz

   20.31. |p|oNOTd,ss packages >>P"a:YENL packages
   CURS:P:!-a-oNOTU"I(c)E!H

   YENN(c)o|^3"C, packages .||^3>>P"a:YENL packages
   NOTU"I(c)E-a-oAo:<<Y!A(c)OYENHYEN^2P:.YENy|ae|w,E"-o"C, packages
   CUR~ -`aYEN?+-`|w,E!C

   NOTd,ss packages >>P"a:YENL packages
   CURS:P:!-a-oNOTU"I(c)E-a-o<<u:YENO|pCURU!A|pNOTd,ss>>P portupgrade
   NOTU"I-a-o"a:YENL packages!G

 # pkg_info -r portupgrade-{version}.tgz

   20.32. |p|o|w,E>>.-oY-a-o packages!H

   |^3"a-oO/^3](c)wCURe|!!A-oYENyNOTO PACKAGEROOT!A|p!G

 # setenv PACKAGEROOT ftp://ftp.tw.freebsd.org

   YENtCUR@-oO/CURe|!NOTO^3](c)w PACKAGESITE!A|n^3BNOTOY,O-,YENx-a-o
   packages U:Ax"ACUR-L-NOTO^2AA|X(c)xCURe-a-o^3](c)w(c)IS:A
   .Q|UCURv<<u:(c)wCUR@O,o(R)|!C

   YENH ftp.tw.freebsd.org i386 -a-o current pakcages NOTDEG"O!G

 # setenv PACKAGESITE ftp://ftp.tw.freebsd.org/pub/FreeBSD/ports/i386/packages-current/Latest/

   "a-oO/CURe|!?i
   3/4U:"a:CURCURCUR@-oO/NOTOYENi!A+-uCURU"O-a-o"BAEJ^3-L-CUR@ 1/4E!C

   (c)^1<<an|w,E packages -a-o(R)EO!A|p portupgrade -a-o,U:!A<<h!G

 # pkg_add -r portupgrade

   <<h"t^2I.||UDEGE(c)o ftp.tw.freebsd.org S:`i"u(c)O|^3>>P
   portupgrade NOTU"I-a-o packages "A|w,E!C

   20.33. |p|oS:o.s INDEX ^1i.O-ai!H

   4.x -a-o INDEX |`i(c)o /usr/ports/INDEX!A5.x |`i(c)o
   /usr/ports/INDEX-5!AYENH|^1Ath+-A!C

   INDEX NOTO^1i.O ports
   (c)O|^3NOTU"IuYEN,eDEGT-a-o^1i.O-ai!AY-ao/'AYEN
   1/4S:o.s-a-o,U:!A.| 3/4EP ports ^1i.OYEN-c-+-N!C
   (c)xCURe|^3(c)w'AS:o.s INDEX!A|p-aG.Q|U|aeS:o.s-a-o,U:!A<<h!G

 # cd /usr/ports

 # make index

   |p-aG.Q-a 1/2+-uCURU,u:(c)xCURe^3I.s-a-o INDEX!A<<h!G

 # cd /usr/ports

 # make fetchindex

   20.34. |p|oS:o.s INDEX HTML!H

   FreeBSD '-L-"NCURFYENI-ooP:-a-oCURe|!"OAE[NOTY ports
   collection!AS:YYENi"IYENI lynx, w3m, links
   (c)I"a:YEN|YENiAsA:y-ooP:-a-ou{|!"ONOTd 3/4\!C>>sS:@YENth^3! ports
   collection -a-oCURe|!|pCURU!G

 # cd /usr/ports

 # make readmes

   |p-aGNOTOP:EP:.nDEGuYENO/<<eYENO/?yCURU-a-o,eDEGT!A(c)I^3aeCUR@S:o.sNOTYCUR@CURAAthCURU-a-o,eDEGT!A|p
   /usr/ports/ftp -a-o,U:!A<<h!G

 # cd /usr/ports/ftp

 # make readme

   <<hP:E.|S:o.s /usr/ports/ftp
   ^3oOYENO/?y-a-o,eDEGT!A"a:CURW>>P"a:CURU-a-oYENO/?yNOTOCUR-L-.|S:oDEGE"`i!CDEGo|ae|"YEN\<<a!A.||bNOTU^1iA^3-a-oYENO/?yCURU^2-L-YENI
   README.html -a-oAE(R) *!C

   20.35. |p|oDEGw^1iNOTY"C, ports CUR-L-DEGu ports update!H

   Y ports
   (c)^3CURU-a-oNOTY"C,CURAAthS:^1YENthYENICUR-L-"`i!A<<hYENiYENH|b
   ports update (R)E!ACUR-L-DEGuS:o.s!AYENH,`NOTU-oo,oAW
   1/4e>>P(R)EP:!!CYENun *S:i /usr/sup/refuse ^3oOAE!C

 # ports/french

 # ports/german

 # ports/lang/perl5.8

   <<hCURW|CYENO/?y+-NCUR-L-.|S:o.s!C

   20.36. make deinstall >>P pkg_delete |^3CURDEG>>oCUR-L-|P!H

   A^2^3ae"O>>!!Amake deinstall .|^2 3/4DEG-L-,O
   port!A"AYENBCUR-L-.|DEGN.O"a:NOTU"I-a-oNOTUAo:(R)MYENo!C

   pkg_delete |b^2 3/4DEG-L-,O port
   <<e!A.|DEGN.O"a:NOTU"I-a-oNOTUAo:(R)MYENo!A"AYENB pkg_delete
   |^3CURa:'(c) wild card !A|pn^2 3/4DEG-L-(c)O|^3 p P:}AY-a-o
   ports!A<<h!G

 # cd /var/db/pkg

 # pkg_delete p*

   n-a`.N-a-oNOTO!A|p-aG"IYENI make deinstall!A<<h^3I|n
   1/2T(c)w"t^2IYENO/<<e(c)O|w,E-a-o-a(c)YEN>>!A>>P ports collection
   CURCURAAaYENU:-a-o-a(c)YEN>>^2AA|X!AS:_<<h|^3YENi-`a.|YENX^2{<<D^1w'A(c)E?u>>~!F|O
   pkg_delete NOTO|]NOTDEG-a 1/2+-u
   S:RDEG-L-"t^2ICURCUR(c)O|w,E-a-o-a(c)YEN>>!A(c)OYENH"S|^3|^1DEGYAD!C

   |]|^1!A'<<YENy,U:>>!!A.i"t^2I(c)O|w,E-a-o-a(c)YEN>>^2AA|X ports
   collections CURCUR-a-o-a(c)YEN>>!A<<hYENiYENH"IYENI make deinstall
   (c)I pkg_delete!AS:_<<h-a-o,U:^3I|nYENI pkg_delete!C

     --------------------------------------------------------------

                              Bibliography

   FreeBSD Unleashed, Michael Urban and Brian Tiemann, Sams, 1st
   edition, 992 pages, October 2001, ISBN 0-67232-206-4.

   4.4BSD System Manager's Manual, Computer Systems Research Group,
   University of California, Berkeley, O'Reilly and Associates, 1st
   edition, June 1994, 804 pages, ISBN 1-56592-080-5.

   4.4BSD User's Reference Manual, Computer Systems Research Group,
   University of California, Berkeley, O'Reilly and Associates, 1st
   edition, June 1994, 905 pages, ISBN 1-56592-075-9.

   4.4BSD User's Supplementary Documents, Computer Systems Research
   Group, University of California, Berkeley, O'Reilly and
   Associates, 1st edition, June 1994, 712 pages, ISBN 1-56592-076-7.

   4.4BSD Programmer's Reference Manual, Computer Systems Research
   Group, University of California, Berkeley, O'Reilly and
   Associates, 1st edition, June 1994, 866 pages, ISBN 1-56592-078-3.

   4.4BSD Programmer's Supplementary Documents, Computer Systems
   Research Group, University of California, Berkeley, O'Reilly and
   Associates, 1st edition, June 1994, 596 pages, ISBN 1-56592-079-1.

   The Design and Implementation of the 4.4BSD Operating System, M.
   K. McKusick, Kirk Marshall, Keith Bostic, Michael J Karels, and
   John Quarterman, Addison-Wesley, Reading, 1996, ISBN
   0-201-54979-4.

   The Design and Implementation of the FreeBSD Operating System, M.
   K. McKusick and George V. Neville-Neil, Addison-Wesley, Boston,
   2004, ISBN 0-201-70245-2.

   Unix System Administration Handbook, Evi Nemeth, Garth Snyder,
   Scott Seebass, Trent R. Hein, and John Quarterman, Prentice-Hall,
   3rd edition, 2000, ISBN 0-13-020601-6.

   The Complete FreeBSD, Greg Lehey, Walnut Creek, 3rd edition, June
   1999, 773 pages, ISBN 1-57176-246-9.

   The FreeBSD Handbook, FreeBSD Documentation Project, BSDi, 1st
   edition, November 1999, 489 pages, ISBN 1-57176-241-8.

   [McKusick et al, 1994] Berkeley Software Architecture Manual,
   4.4BSD Edition, M. K. McKusick, M. J. Karels, S. J. Leffler, W. N.
   Joy, and R. S. Faber, 5:1-42.

   FreeBSD for PC 98'ers (in Japanese), SHUWA System Co, LTD., ISBN
   4-87966-468-5 C3055 P2900E.

   FreeBSD (in Japanese), CUTT, ISBN 4-906391-22-2.

   Complete Introduction to FreeBSD (in Japanese), Shoeisha Co., Ltd,
   ISBN 4-88135-473-6 P3600E.

   Personal UNIX Starter Kit FreeBSD (in Japanese), ASCII, ISBN
   4-7561-1733-3 P3000E.

   FreeBSD Handbook (Japanese translation), ASCII, ISBN 4-7561-1580-2
   P3800E.

   FreeBSD mit Methode (in German), Computer und Literature
   Verlag/Vertrieb Hanser, 1998, ISBN 3-932311-31-0.

   FreeBSD install and Utilization Manual (in Japanese), Mainichi
   Communications Inc..

   Building Internet Server with FreeBSD (in Indonesia Language),
   Elex Media Komputindo, Onno W Purbo, Dodi Maryanto, Syahrial
   Hubbany, and Widjil Widodo.

   The FreeBSD Corporate Networker's Guide, Addison-Wesley.

   UNIX in a Nutshell, O'Reilly & Associates, Inc., 1990, ISBN
   093717520X.

   What You Need To Know When You Can't Find Your Unix System
   Administrator, O'Reilly & Associates, Inc., 1995, Linda Mui, ISBN
   1-56592-104-6.

   FreeBSD User's Reference Manual (Japanese translation), Mainichi
   Communications Inc., Jpman Project, Japan FreeBSD Users Group,
   1998, ISBN 4-8399-0088-4 P3800E.

   Online Guide for newcomers to the UNIX environment, Edinburgh
   University.

   DNS and BIND, O'Reilly & Associates, Inc, ISBN 1-56592-512-2, Paul
   Albitz Albitz and Cricket Liu, 1998, 3rd edition.

   Sendmail, O'Reilly & Associates, Inc, 1997, 2nd edition, Brian
   Costales, ISBN 1-56592-222-0.

   Essential System Administration, AEleen Frisch, 2nd edition,
   O'Reilly & Associates, 1995, ISBN 1-56592-127-5.

   TCP/IP Network Administration, Craig Hunt, 2nd edition, O'Reilly &
   Associates, Inc, 1997, ISBN 1-56592-322-7.

   Managing NFS and NIS, Hal Stern, O'Reilly & Associates, Inc, 1991,
   ISBN 0-937175-75-7.

   FreeBSD System Administration's Manual, Jpman Project, Japan
   FreeBSD Users Group, Mainichi Communications Inc., 1998, ISBN
   4-8399-0109-0 P3300E.

   X Window System Toolkit, Digital Press, Paul Asente, ISBN
   1-55558-051-3.

   C: A Reference Manual, Prentice Hall, 1995, 4th edition, Samuel P.
   Harbison and Guy L. Jr. Steele, ISBN 0-13-326224-3.

   The C Programming Language, Prentice Hall, 1998, Brian Kernighan
   and Dennis Ritchie, ISBN 0-13-110362-9.

   Porting UNIX Software, Greg Lehey, O'Reilly & Associates, Inc.,
   1995, ISBN 1-56592-126-7.

   The Standard C Library, Prentice Hall, 1992, P. J. Plauger, ISBN
   0-13-131509-9.

   Advanced Programming in the UNIX Environment, Addison-Wesley,
   1992, W. Richard Stevens, ISBN 0-201-56317-7.

   UNIX Network Programming, W. Richard Stevens, Prentice Hall, 1998,
   2nd edition, ISBN 0-13-490012-X.

   Writing Serial Drivers for UNIX, Bill Wells, December 1994, Dr.
   Dobb's Journal, pp68-71, pp97-99.

   UNIX System Architecture, Prentice-Hall, Inc, 1990, Prabhat K.
   Andleigh, ISBN 0-13-949843-5.

   Porting UNIX to the 386, William Jolitz, Dr. Dobb's Journal,
   January 1991-July 1992.

   TCP/IP Illustrated, Volume 1: The Protocols, W. Richard Stevens,
   Addison-Wesley, 1996, ISBN 0-201-63346-9.

   Unix Systems for Modern Architectures, Addison-Wesley, Curt
   Schimmel, 1994, ISBN 0-201-63338-8.

   TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP and
   the UNIX Domain Protocols, Addison-Wesley, 1996, W. Richard
   Stevens, ISBN 0-201-63495-3.

   UNIX Internals -- The New Frontiers, Uresh Vahalia, Prentice Hall,
   1996, ISBN 0-13-101908-2.

   TCP/IP Illustrated, Volume 2: The Implementation, Gary R. Wright
   and W. Richard Stevens, 1995, Addison-Wesley, ISBN 0-201-63354-X.

   Firewalls and Internet Security: Repelling the Wily Hacker,
   William R. CHeswick and Steven M. Bellovin, Addison-Wesley, 1995,
   ISBN 0-201-63357-4.

   Practical UNIX Security, Simson Garfinkel and Gene Spafford, 1996,
   2nd edition, O'Reilly & Associates, Inc, ISBN 1-56592-148-8.

   PGP Pretty Good Privacy, Simson Garfinkel, O'Reilly & Associates,
   Inc, 1995, ISBN 1-56592-098-8.

   Pentium Processor System Architecture, Don Anderson and Tom
   Shanley, Addison-Wesley, 1995, 2nd edition, ISBN 0-201-40992-5.

   Programmer's Guide to the EGA, VGA, and Super VGA Cards, Richard
   F. Ferraro, 3rd edition, Addison-Wesley, 1995, ISBN 0-201-62490-7.

   80486 System Architecture, Tom Shanley, Addison-Wesley, 1995, 3rd
   edition, ISBN 0-201-40994-1.

   ISA System Architecture, Tom Shanley, Addison-Wesley, 3rd edition,
   1995, ISBN 0-201-40996-8.

   PCI System Architecture, Tom Shanley, Addison-Wesley, 1995, 3rd
   edition, ISBN 0-201-40993-3.

   The Undocumented PC, Frank Van Gilluwe, Addison-Wesley, 1994, ISBN
   0-201-62277-7.

   Bell System Technical Journal, Unix Time-Sharing System, American
   Telephone & Telegraph Company, July-August 1978, Vol 57, No 6,
   Part 2, ISSN0005-8580.

   Lion's Commentary on UNIX, John Lion, ITP Media Group, 1996, 6th
   edition, ISBN 1573980137.

   The New Hacker's Dictionary, Eric S. Raymond, MIT Press, 1996, 3rd
   edition, ISBN 0-262-68092-0.

   A quarter century of UNIX, Peter H. Salus, Addison-Wesley, 1994,
   ISBN 0-201-54777-5.

   The UNIX-HATERS Handbook, Steven Strassman, Daniel Weise, and
   Simon Garfinkel, IDG Books Worldwide, Inc, 1994, ISBN
   1-56884-203-1.

   Life with UNIX !X!X special edition, Don Libes and Sandy Ressler,
   Prentice-Hall, 1989, ISBN 0-13-536657-7.

   The BSD Family Tree, 1997.

   Absolute BSD, Michael Lucas, No Starch Press, June 2002, ISBN
   1-886411-74-3.

   The C/C++ Users Journal, R&D Publications Inc., ISSN 1075-2838.

   Sys Admin !X!X The Journal for UNIX System Administrators, Miller
   Freeman, Inc, ISSN 1061-2688.

  Notes

   [1] CUR@<<E"O|U Keith Frechette -a-o e-mail                        
       <kfrechet@us.ibm.com>!C                                        

     --------------------------------------------------------------

YEN>>CURaaCURI"a:YENLCURaaYENo!AYENiYENN|^1CURU,u:!Gftp://ftp.FreeBSD.org/pub/FreeBSD/doc/!C

        Y|^3 FreeBSD CURe+--oADEGY!A 1/2D-YENy 3/4\AA-a FreeBSD
         NOTUAo:CURaaYENo!A|pCUR-L--`a,N"M-a-o,U:!A|ANOT-c-,ss
                       <questions@FreeBSD.org>!C
  Ao:(c)oYEN>>CURaaYENo-a-oDEGYAD!A 1/2D-NOT-c-,ss <doc@FreeBSD.org>!C
