FreeBSD Handbook

The FreeBSD Documentation Project

            doc@FreeBSD.org
          

Welcome to FreeBSD! This handbook covers the installation and day to day use of FreeBSD Release 4.0. This manual is a work in progress and is the work of many individuals. Many sections do not yet exist and some of those that do exist need to be updated. If you are interested in helping with this project, send email to the FreeBSD documentation project mailing list . The latest version of this document is always available from the FreeBSD World Wide Web server. It may also be downloaded in a variety of formats and compression options from the FreeBSD FTP server or one of the numerous mirror sites. You may also want to Search the Handbook.

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.


Table of Contents
I. Getting Started
1. Introduction
1.1. Synopsis
1.2. Welcome to FreeBSD!
1.3. About the FreeBSD Project
2. Installing FreeBSD
2.1. Synopsis
2.2. Installation Guide
2.3. Supported Hardware
2.4. Troubleshooting
3. Unix Basics
3.1. Synopsis
3.2. Permissions
3.3. Directory Structures
3.4. Shells
3.5. Text Editors
3.6. For more information...
4. Installing Applications: The Ports collection
4.1. Synopsis
4.2. Using the Ports Collection
4.3. Troubleshooting
4.4. Advanced Topics
II. System Administration
5. The FreeBSD Booting Process
5.1. Synopsis
5.2. The Boot Blocks: Bootstrap Stages 1 and 2
5.3. Loader: Bootstrap Stage Three
5.4. Kernel Interaction During Boot
5.5. Init: Process Control Initialization
5.6. Shutdown Sequence
6. Users and Basic Account Management
6.1. Synopsis
6.2. The Superuser Account
6.3. System Accounts
6.4. User Accounts
6.5. Modifying Accounts
6.6. Limiting and Personalizing Users
7. Configuring the FreeBSD Kernel
7.1. Synopsis
7.2. Why Build a Custom Kernel?
7.3. Building and Installing a Custom Kernel
7.4. The Configuration File
7.5. Making Device Nodes
7.6. If Something Goes Wrong
8. Security
8.1. Synopsis
8.2. Introduction
8.3. Securing FreeBSD
8.4. DES, MD5, and Crypt
8.5. S/Key
8.6. Kerberos
8.7. Firewalls
8.8. OpenSSL
8.9. IPsec
9. Printing
9.1. Synopsis
9.2. Introduction
9.3. Basic Setup
9.4. Advanced Printer Setup
9.5. Using Printers
9.6. Alternatives to the Standard Spooler
9.7. Troubleshooting
10. Disks
10.1. Synopsis
10.2. BIOS Drive Numbering
10.3. Disk Naming
10.4. Mounting and Unmounting Filesystems
10.5. Adding Disks
10.6. Virtual Disks: Network, Memory, and File-Based Filesystems
10.7. Disk Quotas
11. Backups
11.1. Synopsis
11.2. Tape Media
11.3. Backup Programs
11.4. What about Backups to Floppies?
12. The X Window System
12.1. Synopsis
12.2. Overview
12.3. Installing XFree86
13. Localization - I18N/L10N Usage and Setup
13.1. Synopsis
13.2. The Basics
13.3. Using Localization
13.4. Advanced Topics
13.5. Localizing FreeBSD to Specific Languages
III. Network Communications
14. Serial Communications
14.1. Synopsis
14.2. Serial Basics
14.3. Terminals
14.4. Dial-in Service
14.5. Dial-out Service
14.6. Setting Up the Serial Console
15. PPP and SLIP
15.1. Synopsis
15.2. Using User PPP
15.3. Using Kernel PPP
15.4. Using PPP over Ethernet (PPPoE)
15.5. Using SLIP
16. Advanced Networking
16.1. Synopsis
16.2. Gateways and Routes
16.3. Bridging
16.4. NFS
16.5. Diskless Operation
16.6. ISDN
16.7. NIS/YP
16.8. DHCP
17. Electronic Mail
17.1. Synopsis
17.2. Using Electronic Mail
17.3. Troubleshooting
17.4. Advanced Topics
IV. Advanced topics
18. The Cutting Edge
18.1. Synopsis
18.2. -CURRENT v.s.. -STABLE
18.3. Synchronizing Your Source
18.4. Using make world
19. Contributing to FreeBSD
19.1. What is Needed
19.2. How to Contribute
19.3. Donors Gallery
19.4. Core Team Alumni
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. Encumbered files
20.4. 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.2. Debugging a Crash Dump with DDD
22.3. Post-Mortem Analysis of a Dump
22.4. On-Line Kernel Debugging Using DDB
22.5. On-Line Kernel Debugging Using Remote GDB
22.6. Debugging a Console Driver
23. Linux Binary Compatibility
23.1. Synopsis
23.2. Installation
23.3. Installing Mathematica
23.4. Installing Oracle
23.5. Advanced Topics
24. FreeBSD Internals
24.1. DMA: What it is and How it Works
24.2. The FreeBSD VM System
24.3. IPv6/IPsec Implementation
V. Appendices
A. Obtaining FreeBSD
A.1. CD-ROM Publishers
A.2. FTP Sites
A.3. Anonymous CVS
A.4. Using CTM
A.5. Using CVSup
A.6. AFS Sites
B. Bibliography
B.1. Books & Magazines Specific to FreeBSD
B.2. Users' Guides
B.3. Administrators' Guides
B.4. Programmers' Guides
B.5. Operating System Internals
B.6. Security Reference
B.7. Hardware Reference
B.8. UNIX History
B.9. Magazines and Journals
C. Resources on the Internet
C.1. Mailing Lists
C.2. Usenet Newsgroups
C.3. World Wide Web Servers
C.4. Email Addresses
C.5. Shell Accounts
D. FreeBSD Project Staff
D.1. The FreeBSD Core Team
D.2. The FreeBSD Developers
D.3. The FreeBSD Documentation Project
D.4. Who is Responsible for What
E. PGP keys
E.1. Officers
E.2. Core Team members
E.3. Developers
F. PC Hardware compatibility
F.1. Resources on the Internet
F.2. Sample Configurations
F.3. Core/Processing
F.4. Input/Output Devices
F.5. Storage Devices
F.6. * Other
List of Tables
10-1. Physical Disk Naming Conventions
List of Examples
5-1. boot0 screenshot
5-2. boot2 screenshot
5-3. An insecure console in /etc/ttys
6-1. Changing the configuration for adduser
6-2. rmuser interactive account removal
6-3. Interactive chpass by Superuser
6-4. Interactive chpass by Normal User
6-5. passwd
10-1. Using vnconfig to mount an existing filesystem image
10-2. Creating a New File-Backed Disk with vnconfig
10-3. md memory disk
16-1. Branch office or Home network
16-2. Head office or other lan
A-1. Checking out something from -CURRENT (ls(1)) and deleting it again:
A-2. Checking out the version of ls(1) in the 3.X-STABLE branch:
A-3. Creating a list of changes (as unified diffs) to ls(1)
A-4. Finding out what other module names can be used:

For questions about FreeBSD, e-mail <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.