This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.

FreeBSD Developers' Handbook

FreeBSD Developers' Handbook

The FreeBSD Documentation Project

Welcome to the Developers' Handbook. 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.


Table of Contents
I. Basics
1 Introduction
1.1 Developing on FreeBSD
1.2 The BSD Vision
1.3 Architectural Guidelines
1.4 The Layout of /usr/src
2 Programming Tools
2.1 Synopsis
2.2 Introduction
2.3 Introduction to Programming
2.4 Compiling with cc
2.5 Make
2.6 Debugging
2.7 Using Emacs as a Development Environment
2.8 Further Reading
3 Secure Programming
3.1 Synopsis
3.2 Secure Design Methodology
3.3 Buffer Overflows
3.4 SetUID issues
3.5 Limiting your program's environment
3.6 Trust
3.7 Race Conditions
4 Localization and Internationalization - L10N and I18N
4.1 Programming I18N Compliant Applications
5 Source Tree Guidelines and Policies
5.1 MAINTAINER on Makefiles
5.2 Contributed Software
5.3 Encumbered Files
5.4 Shared Libraries
II. Interprocess Communication
6 * Signals
7 Sockets
7.1 Synopsis
7.2 Networking and Diversity
7.3 Protocols
7.4 The Sockets Model
7.5 Essential Socket Functions
7.6 Helper Functions
7.7 Concurrent Servers
8 IPv6 Internals
8.1 IPv6/IPsec Implementation
III. Kernel
9 DMA
9.1 DMA: What it is and How it Works
10 Kernel Debugging
10.1 Obtaining a Kernel Crash Dump
10.2 Debugging a Kernel Crash Dump with gdb
10.3 Debugging a Crash Dump with DDD
10.4 Post-Mortem Analysis of a Dump
10.5 On-Line Kernel Debugging Using DDB
10.6 On-Line Kernel Debugging Using Remote GDB
10.7 Debugging Loadable Modules Using GDB
10.8 Debugging a Console Driver
11 * UFS
12 * AFS
13 * Syscons
14 * Compatibility Layers
14.1 * Linux
IV. Architectures
15 x86 Assembly Language Programming
15.1 Synopsis
15.2 The Tools
15.3 System Calls
15.4 Return Values
15.5 Creating Portable Code
15.6 Our First Program
15.7 Writing Unix Filters
15.8 Buffered Input and Output
15.9 Command Line Arguments
15.10 Unix Environment
15.11 Working with Files
15.12 One-Pointed Mind
15.13 Using the FPU
15.14 Caveats
15.15 Acknowledgements
16 * Alpha
V. Appendices
Bibliography
List of Examples
2-1. A sample .emacs file

This, and other documents, can be downloaded from ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

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