FreeBSD Handbook

1. Introduction
1.1. FreeBSD in a Nutshell
1.2. A Brief History of FreeBSD
1.3. FreeBSD Project Goals
1.4. The FreeBSD Development Model
1.5. About the Current Release
2. Installing FreeBSD
2.1. Supported Configurations
2.1.1. Disk Controllers
2.1.2. Ethernet cards
2.1.3. Miscellaneous devices
2.2. Preparing for the Installation
2.2.1. Before installing from CDROM
2.2.2. Before installing from Floppy
2.2.3. Before installing from a MS-DOS partition
2.2.4. Before installing from QIC/SCSI Tape
2.2.5. Before installing over a network
2.2.5.1. Preparing for NFS installation
2.2.5.2. Preparing for FTP Installation
2.3. Installing FreeBSD
2.4. MS-DOS User's Questions and Answers
3. Unix Basics
3.1. The Online Manual
3.2. GNU Info Files
4. Installing Applications: The Ports collection
4.1. Why Have a Ports Collection?
4.2. How Does the Ports Collection Work?
4.3. Getting a FreeBSD Port
4.3.1. Compiling ports from CDROM
4.3.2. Compiling ports from the Internet
4.4. Skeletons
4.4.1. Makefile
4.4.2. The files directory
4.4.3. The patches directory
4.4.4. The pkg directory
4.5. What to do when a port does not work.
4.6. Some Questions and Answers
4.7. Making a port yourself
4.7.1. Quick Porting
4.7.1.1. Writing the Makefile
4.7.1.2. Writing the description files
COMMENT
DESCR
PLIST
4.7.1.3. Creating the checksum file
4.7.1.4. Testing the port
4.7.1.5. Checking your port with portlint
4.7.1.6. Submitting the port
4.7.2. Slow Porting
4.7.2.1. How things work
4.7.2.2. Getting the original sources
4.7.2.3. Modifying the port
4.7.2.4. Patching
4.7.2.5. Configuring
4.7.2.6. Handling user input
4.7.3. Configuring the Makefile
4.7.3.1. The original source
4.7.3.2. DISTNAME
4.7.3.3. PKGNAME
4.7.3.4. CATEGORIES
4.7.3.5. MASTER_SITES
4.7.3.6. PATCHFILES
4.7.3.7. MAINTAINER
4.7.3.8. Dependencies
LIB_DEPENDS
RUN_DEPENDS
BUILD_DEPENDS
FETCH_DEPENDS
DEPENDS
Common dependency variables
Notes on dependencies
4.7.3.9. Building mechanisms
4.7.4. Special Considerations
4.7.4.1. ldconfig
4.7.4.2. ELF support
Moving a.out libraries out of the way
Format
PORTOBJFORMAT
Building shared libraries
LIB_DEPENDS
PLIST
ldconfig
4.7.4.3. MASTERDIR
4.7.4.4. Shared library versions
4.7.4.5. Manpages
4.7.4.6. Ports that require Motif
REQUIRES_MOTIF
${MOTIFLIB}
4.7.4.7. X11 fonts
4.7.4.8. Info files
4.7.5. The pkg Subdirectory
4.7.5.1. MESSAGE
4.7.5.2. INSTALL
4.7.5.3. REQ
4.7.5.4. Changing PLIST based on make variables
4.7.5.5. Changing the names of files in the pkg subdirectory
4.7.6. Licensing Problems
4.7.7. Upgrading
4.7.8. Do's and Dont's
4.7.8.1. Strip Binaries
4.7.8.2. INSTALL_* macros
4.7.8.3. WRKDIR
4.7.8.4. WRKDIRPREFIX
4.7.8.5. Differentiating operating systems and OS versions
4.7.8.6. Writing something after bsd.port.mk
4.7.8.7. Install additional documentation
4.7.8.8. DIST_SUBDIR
4.7.8.9. RCS strings
4.7.8.10. Recursive diff
4.7.8.11. PREFIX
4.7.8.12. Subdirectories
4.7.8.13. Cleaning up empty directories
4.7.8.14. UIDs
4.7.8.15. Do things rationally
4.7.8.16. Respect CFLAGS
4.7.8.17. Configuration files
4.7.8.18. Portlint
4.7.8.19. Feedback
4.7.8.20. Miscellanea
4.7.8.21. If you are stuck....
4.7.9. A Sample Makefile
4.7.10. Package Names
4.7.11. Categories
4.7.11.1. Current list of categories
4.7.11.2. Choosing the right category
4.7.12. Changes to this document and the ports system
4.7.13. That is It, Folks!
5. Configuring the FreeBSD Kernel
5.1. Why Build a Custom Kernel?
5.2. Building and Installing a Custom Kernel
5.3. The Configuration File
5.3.1. Mandatory Keywords
5.3.2. General Options
5.3.3. Filesystem Options
5.3.4. Basic Controllers and Devices
5.3.5. SCSI Device Support
5.3.6. Console, Bus Mouse, and X Server Support
5.3.7. Serial and Parallel Ports
5.3.8. Networking
5.3.9. Sound cards
5.3.10. Pseudo-devices
5.3.11. Joystick, PC Speaker, Miscellaneous
5.4. Making Device Nodes
5.5. If Something Goes Wrong
6. Security
6.1. DES, MD5, and Crypt
6.1.1. Recognizing your `crypt' mechanism
6.2. S/Key
6.2.1. Secure connection initialization
6.2.2. Insecure connection initialization
6.2.3. Diversion: a login prompt
6.2.4. Generating a single one-time password
6.2.5. Generating multiple one-time passwords
6.2.6. Restricting use of UNIX passwords
6.3. Kerberos
6.3.1. Creating the initial database
6.3.2. Making it all run
6.3.3. Creating the server file
6.3.4. Populating the database
6.3.5. Testing it all out
6.3.6. Adding su privileges
6.3.7. Using other commands
6.4. Firewalls
6.4.1. What is a firewall?
6.4.1.1. Packet filtering routers
6.4.1.2. Proxy servers
6.4.2. What does IPFW allow me to do?
6.4.3. Enabling IPFW on FreeBSD
6.4.4. Configuring IPFW
6.4.4.1. Altering the IPFW rules
6.4.4.2. Listing the IPFW rules
6.4.4.3. Flushing the IPFW rules
6.4.4.4. Clearing the IPFW packet counters
6.4.5. Example commands for ipfw
6.4.6. Building a packet filtering firewall
7. Printing
7.1. What the Spooler Does
7.2. Why You Should Use the Spooler
7.3. Setting Up the Spooling System
7.4. Simple Printer Setup
7.4.1. Hardware Setup
7.4.1.1. Ports and Cables
7.4.1.2. Parallel Ports
7.4.1.3. Serial Ports
7.4.2. Software Setup
7.4.2.1. Kernel Configuration
Adding /dev Entries for the Ports
Setting the Communication Mode for the Parallel Port
Checking Printer Communications
Checking a Parallel Printer
Checking a Serial Printer
7.4.2.2. Enabling the Spooler: The /etc/printcap File
Naming the Printer
Suppressing Header Pages
Making the Spooling Directory
Identifying the Printer Device
Configuring Spooler Communication
Installing the Text Filter
Trying It Out
Troubleshooting
7.5. Using Printers
7.5.1. Printing Jobs
7.5.2. Checking Jobs
7.5.3. Removing Jobs
7.5.4. Beyond Plain Text: Printing Options
7.5.4.1. Formatting and Conversion Options
7.5.4.2. Job Handling Options
7.5.4.3. Header Page Options
7.5.5. Administrating Printers
7.6. Advanced Printer Setup
7.6.1. Filters
7.6.1.1. How Filters Work
7.6.1.2. Accommodating Plain Text Jobs on PostScript Printers
7.6.1.3. Simulating PostScript on Non-PostScript Printers
7.6.1.4. Conversion Filters
Why Install Conversion Filters?
Which Conversions Filters Should I Install?
Installing Conversion Filters
More Conversion Filter Examples
Automated Conversion: An Alternative To Conversion Filters
7.6.1.5. Output Filters
7.6.1.6. lpf: a Text Filter
7.6.2. Header Pages
7.6.2.1. Enabling Header Pages
7.6.2.2. Controlling Header Pages
7.6.2.3. Accounting for Header Pages
7.6.2.4. Header Pages on PostScript Printers
7.6.3. Networked Printing
7.6.3.1. Printers Installed on Remote Hosts
7.6.3.2. Printers with Networked Data Stream Interfaces
7.6.4. Restricting Printer Usage
7.6.4.1. Restricting Multiple Copies
7.6.4.2. Restricting Access To Printers
7.6.4.3. Controlling Sizes of Jobs Submitted
7.6.4.4. Restricting Jobs from Remote Printers
7.6.5. Accounting for Printer Usage
7.6.5.1. Quick and Dirty Printer Accounting
7.6.5.2. How Can You Count Pages Printed?
7.7. Alternatives to the Standard Spooler
7.8. Acknowledgments
8. Disks
8.1. Using sysinstall
8.2. Using command line utilities
8.2.1. * Using Slices
8.2.2. Dedicated
8.3. * Non-traditional Drives
8.3.1. * Zip Drives
8.3.2. * Jazz Drives
8.3.3. * Sequest Drives
9. Backups
9.1. * What about backups to floppies?
9.2. Tape Media
9.2.1. 4mm (DDS: Digital Data Storage)
9.2.2. 8mm (Exabyte)
9.2.3. QIC
9.2.4. * Mini-Cartridge
9.2.5. DLT
9.2.6. Using a new tape for the first time
9.3. Backup Programs
9.3.1. Dump and Restore
9.3.2. Tar
9.3.3. Cpio
9.3.4. Pax
9.3.5. Amanda
9.3.6. Do nothing
9.3.7. Which Backup Program is Best?
9.3.8. Emergency Restore Procedure
9.3.8.1. Before the Disaster
9.3.8.2. After the Disaster
9.3.8.3. * I did not prepare for the Disaster, What Now?
10. Disk Quotas
10.1. Configuring Your System to Enable Disk Quotas
10.2. Setting Quota Limits
10.3. Checking Quota Limits and Disk Usage
10.4. * Quotas over NFS
11. The X Window System
12. PC Hardware compatibility
12.1. Resources on the Internet
12.2. Sample Configurations
12.2.1. Jordan's Picks
12.2.1.1. Motherboards
12.2.1.2. Disk Controllers
12.2.1.3. Disk drives
12.2.1.4. CDROM drives
12.2.1.5. CD Recordable (WORM) drives
12.2.1.6. Tape drives
12.2.1.7. Video Cards
12.2.1.8. Monitors
12.2.1.9. Networking
12.2.1.10. Serial
12.2.1.11. Audio
12.2.1.12. Video
12.3. Core/Processing
12.3.1. Motherboards, busses, and chipsets
12.3.1.1. * ISA
12.3.1.2. * EISA
12.3.1.3. * VLB
12.3.1.4. PCI
12.3.2. CPUs/FPUs
12.3.2.1. P6 class (Pentium Pro/Pentium II)
12.3.2.2. Pentium class
Clock speeds
The AMD K6 Bug
12.3.2.3. * 486 class
12.3.2.4. * 386 class
12.3.2.5. 286 class
12.3.3. * Memory
12.3.4. * BIOS
12.4. Input/Output Devices
12.4.1. * Video cards
12.4.2. * Sound cards
12.4.3. Serial ports and multiport cards
12.4.3.1. The UART: What it is and how it works
Synchronous Serial Transmission
Asynchronous Serial Transmission
Other UART Functions
The RS232-C and V.24 Standards
RS232-C Bit Assignments (Marks and Spaces)
RS232-C Break Signal
RS232-C DTE and DCE Devices
RS232-C Pin Assignments
Bits, Baud and Symbols
The IBM Personal Computer UART
National Semiconductor UART Family Tree
The NS16550AF and the PC16550D are the same thing
National Semiconductor Part Numbering System
Other Vendors and Similar UARTs
8250/16450/16550 Registers
Beyond the 16550A UART
12.4.3.2. Configuring the sio driver
Digi International (DigiBoard) PC/8
Boca 16
12.4.3.3. Configuring the cy driver
12.4.4. * Parallel ports
12.4.5. * Modems
12.4.6. * Network cards
12.4.7. * Keyboards
12.4.8. * Mice
12.4.9. * Other
12.5. Storage Devices
12.5.1. Using ESDI hard disks
12.5.1.1. Concepts of ESDI
Physical connections
Device addressing
Termination
12.5.1.2. Using ESDI disks with FreeBSD
ESDI speed variants
Stay on track
Hard or soft sectoring
Low level formatting
Translations
Spare sectoring
Bad block handling
Kernel configuration
12.5.1.3. Particulars on ESDI hardware
Adaptec 2320 controllers
Western Digital WD1007 controllers
Ultrastor U14F controllers
12.5.1.4. Further reading
12.5.1.5. Thanks to...
12.5.2. What is SCSI?
12.5.2.1. Components of SCSI
12.5.2.2. SCSI bus types
Single ended buses
Differential buses
Terminators
Terminator power
Device addressing
Bus layout
12.5.2.3. Using SCSI with FreeBSD
About translations, BIOSes and magic...
SCSI subsystem design
Kernel configuration
Tuning your SCSI kernel setup
Rogue SCSI devices
Multiple LUN devices
Tagged command queueing
Busmaster host adapters
12.5.2.4. Tracking down problems
12.5.2.5. Further reading
12.5.3. * Disk/tape controllers
12.5.3.1. * SCSI
12.5.3.2. * IDE
12.5.3.3. * Floppy
12.5.4. Hard drives
12.5.4.1. SCSI hard drives
Rotational speed
Form factor
Interface
12.5.4.2. * IDE hard drives
12.5.5. Tape drives
12.5.5.1. General tape access commands
12.5.5.2. Controller Interfaces
12.5.5.3. SCSI drives
4mm (DAT: Digital Audio Tape)
8mm (Exabyte)
QIC (Quarter-Inch Cartridge)
DLT (Digital Linear Tape)
Mini-Cartridge
Autoloaders/Changers
12.5.5.4. * IDE drives
12.5.5.5. Floppy drives
12.5.5.6. * Parallel port drives
12.5.5.7. Detailed Information
12.5.5.8. * Problem drives
12.5.6. CD-ROM drives
12.5.7. * Other
12.6. * Other
12.6.1. * PCMCIA
13. Localization
13.1. Russian Language (KOI8-R encoding)
13.1.1. Console Setup
13.1.2. Locale Setup
13.1.2.1. Login Class Method
How to do it with vipw(8)
How to do it with adduser(8)
How to do it with pw(8)
13.1.2.2. Shell Startup Files Method
13.1.3. Printer Setup
13.1.4. MSDOS FS and Russian file names
13.1.5. X Window Setup
13.2. German Language (ISO 8859-1)
14. Serial Communications
14.1. Serial Basics
14.2. Terminals
14.2.1. Uses and Types of Terminals
14.2.1.1. Dumb Terminals
14.2.1.2. PCs Acting As Terminals
14.2.1.3. X Terminals
14.2.2. Cables and Ports
14.2.2.1. Cables
Null-modem cables
Standard RS-232C Cables
14.2.2.2. Ports
Kinds of Ports
Port Names
14.2.3. Configuration
14.2.3.1. Adding an Entry to /etc/ttys
14.2.3.2. Specifying the getty Type
14.2.3.3. Specifying the Default Terminal Type
14.2.3.4. Enabling the Port
14.2.3.5. Specifying Secure Ports
14.2.3.6. Force init to Reread
14.2.4. Debugging your connection
14.3. Dialin Service
14.3.1. Prerequisites
14.3.1.1. FreeBSD Version
14.3.1.2. Terminology
14.3.1.3. External vs. Internal Modems
14.3.1.4. Modems and Cables
14.3.1.5. Serial Interface Considerations
14.3.2. Quick Overview
14.3.3. Kernel Configuration
14.3.4. Device Special Files
14.3.4.1. Making Device Special Files
14.3.5. Configuration Files
14.3.5.1. /etc/gettytab
Locked-Speed Config
Matching-Speed Config
14.3.5.2. /etc/ttys
Locked-Speed Config
Matching-Speed Config
14.3.5.3. /etc/rc.serial or /etc/rc.local
14.3.6. Modem Settings
14.3.6.1. Locked-speed Config
14.3.6.2. Matching-speed Config
14.3.6.3. Checking the Modem's Configuration
14.3.7. Troubleshooting
14.3.7.1. Checking out the FreeBSD system
14.3.7.2. Try Dialing In
14.3.8. Acknowledgments
14.4. Dialout Service
14.4.1. Why cannot I run tip or cu?
14.4.2. My stock Hayes modem is not supported, what can I do?
14.4.3. How am I expected to enter these AT commands?
14.4.4. The @ sign for the pn capability does not work!
14.4.5. How can I dial a phone number on the command line?
14.4.6. Do I have to type in the bps rate every time I do that?
14.4.7. I access a number of hosts through a terminal server.
14.4.8. Can tip try more than one line for each site?
14.4.9. Why do I have to hit CTRL+P twice to send CTRL+P once?
14.4.10. Suddenly everything I type is in UPPER CASE??
14.4.11. How can I do file transfers with tip?
14.4.12. How can I run zmodem with tip?
15. PPP and SLIP
15.1. Setting up User PPP
15.1.1. Before you start
15.1.2. Building a ppp ready kernel
15.1.3. Check the tun device
15.1.4. Name Resolution Configuration
15.1.4.1. Edit the /etc/host.conf file
15.1.4.2. Edit the /etc/hosts(5) file
15.1.4.3. Edit the /etc/resolv.conf file
15.1.5. PPP Configuration
15.1.5.1. PPP and Static IP addresses
15.1.5.2. PPP and Dynamic IP addresses
15.1.5.3. Receiving incoming calls with PPP
Which getty?
PPP permissions
Setting up a PPP shell for dynamic-IP users
Setting up a PPP shell for static-IP users
Setting up ppp.conf for dynamic-IP users
Setting up ppp.conf for static-IP users
More on mgetty, AutoPPP, and MS extensions
Mgetty and AutoPPP
MS extentions
15.1.5.4. PAP and CHAP authentication
15.1.5.5. Changing your ppp configuration on the fly
15.1.6. Final system configuration
15.1.7. Summary
15.1.8. Acknowledgments
15.2. Setting up Kernel PPP
15.2.1. Working as a PPP client
15.2.2. Working as a PPP server
15.3. Setting up a SLIP Client
15.3.1. Things you have to do only once
15.3.2. Making a SLIP connection
15.3.3. How to shutdown the connection
15.3.4. Troubleshooting
15.4. Setting up a SLIP Server
15.4.1. Prerequisites
15.4.2. Quick Overview
15.4.2.1. An Example of a SLIP Server Login
15.4.3. Kernel Configuration
15.4.4. Sliplogin Configuration
15.4.4.1. slip.hosts Configuration
15.4.4.2. slip.login Configuration
15.4.4.3. slip.logout Configuration
15.4.5. Routing Considerations
15.4.5.1. Static Routes
15.4.5.2. Running gated
15.4.6. Acknowledgments
16. Advanced Networking
16.1. Gateways and Routes
16.1.1. An example
16.1.2. Default routes
16.1.3. Dual homed hosts
16.1.4. Routing propagation
16.1.5. Troubleshooting
16.2. NFS
16.3. Diskless Operation
16.3.1. Setup Instructions
16.3.2. Using Shared / and /usr filesystems
16.3.3. Compiling netboot for specific setups
16.4. ISDN
16.4.1. ISDN Cards
16.4.2. ISDN Terminal Adapters
16.4.3. Standalone ISDN Bridges/Routers
17. Electronic Mail
17.1. Basic Information
17.1.1. User program
17.1.2. Mailhost Server Daemon
17.1.3. DNS - Name Service
17.1.4. POP Servers
17.2. Configuration
17.2.1. Basic
17.2.2. Mail for your Domain (Network).
17.2.3. Setting up UUCP.
17.3. FAQ
17.3.1. Why do I have to use the FQDN for hosts on my site?
17.3.2. Sendmail says ``mail loops back to myself''
17.3.3. How can I do E-Mail with a dialup PPP host?
18. The Cutting Edge: FreeBSD-current and FreeBSD-stable
18.1. Staying Current with FreeBSD
18.2. Staying Stable with FreeBSD
18.3. Synchronizing Source Trees over the Internet
18.3.1. Anonymous CVS
18.3.1.1. Introduction
18.3.1.2. Using Anonymous CVS
18.3.1.3. Examples
18.3.1.4. Other Resources
18.3.2. CTM
18.3.2.1. Why should I use CTM?
18.3.2.2. What do I need to use CTM?
18.3.2.3. Starting off with CTM for the first time
18.3.2.4. Using CTM in your daily life
18.3.2.5. Keeping your local changes
18.3.2.6. Other interesting CTM options
Finding out exactly what would be touched by an update
Making backups before updating
Restricting the files touched by an update
18.3.2.7. Future plans for CTM
18.3.2.8. Miscellaneous stuff
18.3.2.9. Thanks!
18.3.3. CVSup
18.3.3.1. Introduction
18.3.3.2. Installation
18.3.3.3. Configuration
18.3.3.4. Running CVSup
18.3.3.5. CVSup File Collections
18.3.3.6. Announcements, Questions, and Bug Reports
18.4. Using make world to rebuild your system
19. Contributing to FreeBSD
19.1. What Is Needed
19.1.1. High priority tasks
19.1.2. Medium priority tasks
19.1.3. Low priority tasks
19.1.4. Smaller tasks
19.2. How to Contribute
19.2.1. Bug reports and general commentary
19.2.2. Changes to the documentation
19.2.3. Changes to existing source code
19.2.4. New code or major value-added packages
19.2.5. Money, Hardware or Internet access
19.2.5.1. Donating funds
19.2.5.2. Donating hardware
19.2.5.3. Donating Internet access
19.3. Donors Gallery
19.4. Core Team Alumnus
19.5. Derived Software Contributors
19.6. Additional FreeBSD Contributors
19.7. 386BSD Patch Kit Patch Contributors
20. Source Tree Guidelines and Policies
20.1. MAINTAINER on Makefiles
20.2. Contributed Software
20.3. Shared Libraries
21. Adding New Kernel Configuration Options
21.1. What's a Kernel Option, Anyway?
21.2. Now What Do I Have to Do for it?
22. Kernel Debugging
22.1. Debugging a Kernel Crash Dump with KGDB
22.1.1. Debugging a crash dump with DDD
22.2. Post-mortem Analysis of a Dump
22.3. On-line Kernel Debugging Using DDB
22.4. On-line Kernel Debugging Using Remote GDB
22.5. Debugging a Console Driver
23. Linux Emulation
23.1. How to Install the Linux Emulator
23.1.1. Installing Linux Emulation in 2.1-STABLE
23.1.2. Installing Linux Emulation in 2.2.2-RELEASE and later
23.1.3. Installing Linux Runtime Libraries
23.1.3.1. Installing using the linux_lib port
23.1.3.2. Installing libraries manually
23.1.3.3. How to install additional shared libraries
23.1.3.4. Configuring the ld.so -- for FreeBSD 2.2-RELEASE and later
23.1.4. Installing Linux ELF binaries
23.1.5. Configuring the host name resolver
23.1.6. Finding the necessary files
23.2. How to Install Mathematica on FreeBSD
23.2.1. Unpacking the Mathematica distribution
23.2.2. Obtaining your Mathematica Password
23.2.3. Bugs
23.2.4. Acknowledgments
24. FreeBSD Internals
24.1. The FreeBSD Booting Process
24.1.1. Loading a kernel
24.1.2. Determine the root filesystem
24.1.3. Initialize user-land things
24.1.4. Interesting combinations
24.2. PC Memory Utilization
24.3. DMA: What it Is and How it Works
24.3.1. A Sample DMA transfer
24.3.2. DMA Page Registers and 16Meg address space limitations
24.3.3. DMA Operational Modes and Settings
24.3.4. Programming the DMA
24.3.5. DMA Port Map
24.3.5.1. 0x00 - 0x1f DMA Controller #1 (Channels 0, 1, 2 and 3)
24.3.5.2. 0xc0 - 0xdf DMA Controller #2 (Channels 4, 5, 6 and 7)
24.3.5.3. 0x80 - 0x9f DMA Page Registers
24.3.5.4. 0x400 - 0x4ff 82374 Enhanced DMA Registers
24.4. The FreeBSD VM System
24.4.1. Management of physical memory - vm_page_t
24.4.2. The unified buffer cache - vm_object_t
24.4.3. Filesystem I/O - struct buf
24.4.4. Mapping Page Tables - vm_map_t, vm_entry_t
24.4.5. KVM Memory Mapping
24.4.6. Tuning the FreeBSD VM system
25. Obtaining FreeBSD
25.1. CD-ROM Publishers
25.2. FTP Sites
25.3. CTM Sites
25.4. CVSup Sites
25.5. AFS Sites
26. Bibliography
26.1. Books & Magazines Specific to FreeBSD
26.2. Users' Guides
26.3. Administrators' Guides
26.4. Programmers' Guides
26.5. Operating System Internals
26.6. Security Reference
26.7. Hardware Reference
26.8. UNIX History
26.9. Magazines and Journals
27. Resources on the Internet
27.1. Mailing lists
27.1.1. List summary
27.1.2. How to subscribe
27.1.3. List charters
27.2. Usenet newsgroups
27.2.1. BSD specific newsgroups
27.2.2. Other Unix newsgroups of interest
27.2.3. X Window System
27.3. World Wide Web servers
28. FreeBSD Project Staff
28.1. The FreeBSD Core Team
28.2. The FreeBSD Developers
28.3. The FreeBSD Documentation Project
28.4. Who Is Responsible for What
29. PGP keys
29.1. Officers
29.1.1. FreeBSD Security Officer <security-officer@freebsd.org>
29.1.2. Warner Losh
29.2. Core Team members
29.2.1. Satoshi Asami
29.2.2. Jonathan M. Bresler
29.2.3. Andrey A. Chernov
29.2.4. Jordan K. Hubbard
29.2.5. Poul-Henning Kamp
29.2.6. Rich Murphey
29.2.7. John Polstra
29.2.8. Guido van Rooij
29.2.9. Peter Wemm
29.2.10. Jörg Wunsch
29.3. Developers
29.3.1. Wolfram Schneider
29.3.2. Brian Somers