Fultus Links
Fultus: Corporate Web Site
Fultus Writers Network
Fultus Book Superstore
FreeBSD Documentation
Fultus Book Superstore - FreeBSD
Books
List of eBooks
A project model for the FreeBSD Project
Table of Contents
Foreword
Overview
Definitions
Table of Contents
Activity
Process
Hat
Outcome
FreeBSD
Organisational structure
Methodology model
Development model
Release branches
Model summary
Hats
General Hats
Official Hats
Process dependent hats
Processes
Adding new and removing old committers
Adding/Removing an official CVSup Mirror
Committing code
Core election
Development of new features
Maintenance
Problem reporting
Reacting to misbehaviour
Release engineering
Tools
Concurrent Versions System (CVS)
CVSup
GNATS
Mailman
Perforce
Pretty Good Privacy
Secure Shell
Sub-projects
The Ports Subproject
The FreeBSD Documentation Project
References
FreeBSD FAQ
Copyright
Table of Contents
Introduction
Documentation and Support
Installation
Hardware compatibility
General
Architectures and processors
Hard drives, tape drives, and CD and DVD drives
Keyboards and mice
Networking and serial devices
Sound devices
Other hardware
Troubleshooting
Commercial Applications
User Applications
Kernel Configuration
Disks, Filesystems, and Boot Loaders
System Administration
The X Window System and Virtual Consoles
Networking
Security
PPP
Serial Communications
Miscellaneous Questions
The FreeBSD Funnies
Advanced Topics
Acknowledgments
Bibliography
FreeBSD Handbook
Copyright
Table of Contents
Preface
Getting Started
Table of Contents
Introduction
Table of Contents
Synopsis
Welcome to FreeBSD!
About the FreeBSD Project
Installing FreeBSD
Table of Contents
Synopsis
Pre-installation Tasks
Starting the Installation
Introducing Sysinstall
Allocating Disk Space
Choosing What to Install
Choosing Your Installation Media
Committing to the Installation
Post-installation
Supported Hardware
Troubleshooting
Advanced Installation Guide
Preparing Your Own Installation Media
Unix Basics
Table of Contents
Synopsis
Virtual Consoles and Terminals
Permissions
Directory Structure
Disk Organization
Mounting and Unmounting File Systems
Processes
Daemons, Signals, and Killing Processes
Shells
Text Editors
Devices and Device Nodes
Binary Formats
For More Information
Installing Applications: Packages and Ports
Table of Contents
Synopsis
Overview of Software Installation
Finding Your Application
Using the Packages System
Using the Ports Collection
Post-installation Activities
Dealing with Broken Ports
The X Window System
Table of Contents
Synopsis
Understanding X
Installing X11
X11 Configuration
Using Fonts in X11
The X Display Manager
Desktop Environments
Common Tasks
Table of Contents
Desktop Applications
Table of Contents
Synopsis
Browsers
Productivity
Document Viewers
Finance
Summary
Multimedia
Table of Contents
Synopsis
Setting Up the Sound Card
MP3 Audio
Video Playback
Setting Up TV Cards
Image Scanners
Configuring the FreeBSD Kernel
Table of Contents
Synopsis
Why Build a Custom Kernel?
Building and Installing a Custom Kernel
The Configuration File
If Something Goes Wrong
Printing
Table of Contents
Synopsis
Introduction
Basic Setup
Advanced Printer Setup
Using Printers
Alternatives to the Standard Spooler
Troubleshooting
Linux Binary Compatibility
Table of Contents
Synopsis
Installation
Installing Mathematica
Installing Maple
Installing MATLAB
Installing Oracle
Installing SAP R/3
Advanced Topics
System Administration
Table of Contents
Configuration and Tuning
Table of Contents
Synopsis
Initial Configuration
Core Configuration
Application Configuration
Starting Services
Configuring the cron Utility
Using rc under FreeBSD 5.X and newer
Setting Up Network Interface Cards
Virtual Hosts
Configuration Files
Tuning with sysctl
Tuning Disks
Tuning Kernel Limits
Adding Swap Space
Power and Resource Management
Using and Debugging FreeBSD ACPI
The FreeBSD Booting Process
Table of Contents
Synopsis
The Booting Problem
The MBR, and Boot Stages One, Two, and Three
Kernel Interaction During Boot
Device Hints
Init: Process Control Initialization
Shutdown Sequence
Users and Basic Account Management
Table of Contents
Synopsis
Introduction
The Superuser Account
System Accounts
User Accounts
Modifying Accounts
Limiting Users
Groups
Security
Table of Contents
Synopsis
Introduction
Securing FreeBSD
DES, MD5, and Crypt
One-time Passwords
TCP Wrappers
KerberosIV
Kerberos5
OpenSSL
VPN over IPsec
OpenSSH
File System Access Control Lists
Monitoring Third Party Security Issues
FreeBSD Security Advisories
Process Accounting
Mandatory Access Control
Table of Contents
Synopsis
Key Terms in this Chapter
Explanation of MAC
Understanding MAC Labels
Planning the Security Configuration
Module Configuration
The MAC bsdextended Module
The MAC ifoff Module
The MAC portacl Module
The MAC partition Module
The MAC Multi-Level Security Module
The MAC Biba Module
The MAC LOMAC Module
Nagios in a MAC Jail
User Lock Down
Troubleshooting the MAC Framework
Security Event Auditing
Table of Contents
Synopsis
Key Terms - Words to Know
Installing Audit Support
Audit Configuration
Event Audit Administration
Storage
Table of Contents
Synopsis
Device Names
Adding Disks
RAID
USB Storage Devices
Creating and Using Optical Media (CDs)
Creating and Using Optical Media (DVDs)
Creating and Using Floppy Disks
Creating and Using Data Tapes
Backups to Floppies
Backup Strategies
Backup Basics
Network, Memory, and File-Backed File Systems
File System Snapshots
File System Quotas
Encrypting Disk Partitions
Encrypting Swap Space
GEOM: Modular Disk Transformation Framework
Table of Contents
Synopsis
GEOM Introduction
RAID0 - Striping
RAID1 - Mirroring
GEOM Gate Network Devices
The Vinum Volume Manager
Table of Contents
Synopsis
Disks Are Too Small
Access Bottlenecks
Data Integrity
Vinum Objects
Some Examples
Object Naming
Configuring Vinum
Using Vinum for the Root Filesystem
Localization - I18N/L10N Usage and Setup
Table of Contents
Synopsis
The Basics
Using Localization
Compiling I18N Programs
Localizing FreeBSD to Specific Languages
The Cutting Edge
Table of Contents
Synopsis
FreeBSD-CURRENT vs. FreeBSD-STABLE
Synchronizing Your Source
Rebuilding "world"
Tracking for Multiple Machines
Network Communication
Table of Contents
Serial Communications
Table of Contents
Synopsis
Introduction
Terminals
Dial-in Service
Dial-out Service
Setting Up the Serial Console
PPP and SLIP
Table of Contents
Synopsis
Using User PPP
Using Kernel PPP
Troubleshooting PPP Connections
Using PPP over Ethernet (PPPoE)
Using PPP over ATM (PPPoA)
Using SLIP
Electronic Mail
Table of Contents
Synopsis
Using Electronic Mail
sendmail Configuration
Changing Your Mail Transfer Agent
Troubleshooting
Advanced Topics
SMTP with UUCP
Setting Up to Send Only
Using Mail with a Dialup Connection
SMTP Authentication
Mail User Agents
Using fetchmail
Using procmail
Network Servers
Table of Contents
Synopsis
The inetd "Super-Server"
Network File System (NFS)
Network Information System (NIS/YP)
Automatic Network Configuration (DHCP)
Domain Name System (DNS)
BIND9 and FreeBSD
Apache HTTP Server
File Transfer Protocol (FTP)
File and Print Services for Microsoft Windows clients (Samba)
Clock Synchronization with NTP
Firewalls
Introduction
Firewall Concepts
Firewall Packages
The OpenBSD Packet Filter (PF) and ALTQ
The IPFILTER (IPF) Firewall
IPFW
Advanced Networking
Table of Contents
Synopsis
Gateways and Routes
Wireless Networking
Bluetooth
Bridging
Diskless Operation
ISDN
Network Address Translation
Parallel Line IP (PLIP)
IPv6
Asynchronous Transfer Mode (ATM)
Appendices
Table of Contents
Obtaining FreeBSD
Table of Contents
CDROM and DVD Publishers
FTP Sites
Anonymous CVS
Using CTM
Using CVSup
Using Portsnap
CVS Tags
AFS Sites
rsync Sites
Bibliography
Table of Contents
Books & Magazines Specific to FreeBSD
Users' Guides
Administrators' Guides
Programmers' Guides
Operating System Internals
Security Reference
Hardware Reference
UNIX History
Magazines and Journals
Resources on the Internet
Table of Contents
Mailing Lists
Usenet Newsgroups
World Wide Web Servers
Email Addresses
Shell Accounts
PGP Keys
Table of Contents
Officers
Core Team Members
Developers
FreeBSD Glossary
Index
Colophon
FreeBSD Developer's Handbook
Copyright
Table of Contents
Basics
Table of Contents
Introduction
Table of Contents
Developing on FreeBSD
The BSD Vision
Architectural Guidelines
The Layout of /usr/src
Programming Tools
Table of Contents
Synopsis
Introduction
Introduction to Programming
Compiling with cc
Make
Debugging
Using Emacs as a Development Environment
Further Reading
Secure Programming
Table of Contents
Synopsis
Secure Design Methodology
Buffer Overflows
SetUID issues
Limiting your program's environment
Trust
Race Conditions
Localization and Internationalization - L10N and I18N
Localization and Internationalization - L10N and I18N
Source Tree Guidelines and Policies
Table of Contents
MAINTAINER on Makefiles
Contributed Software
Encumbered Files
Shared Libraries
Regression and Performance Testing
Micro Benchmark Checklist
Interprocess Communication
Table of Contents
* Signals
Sockets
Table of Contents
Synopsis
Networking and Diversity
Protocols
The Sockets Model
Essential Socket Functions
Helper Functions
Concurrent Servers
IPv6 Internals
IPv6/IPsec Implementation
Kernel
Table of Contents
DMA
DMA: What it is and How it Works
Bulding and Installing a FreeBSD Kernel
Building a Kernel the "Traditional" Way
Building a Kernel the "New" Way
Kernel Debugging
Table of Contents
Obtaining a Kernel Crash Dump
Debugging a Kernel Crash Dump with gdb
Debugging a Crash Dump with DDD
Post-Mortem Analysis of a Dump
On-Line Kernel Debugging Using DDB
On-Line Kernel Debugging Using Remote GDB
Debugging Loadable Modules Using GDB
Debugging a Console Driver
Debugging Deadlocks
Architectures
Table of Contents
x86 Assembly Language Programming
Table of Contents
Synopsis
The Tools
System Calls
Return Values
Creating Portable Code
Our First Program
Writing Unix Filters
Buffered Input and Output
Command Line Arguments
Unix Environment
Working with Files
One-Pointed Mind
Using the FPU
Caveats
Acknowledgements
Appendices
Bibliography
Index
FreeBSD Architecture Handbook
Copyright
Table of Contents
Kernel
Table of Contents
Bootstrapping and kernel initialization
Table of Contents
Synopsis
Overview
BIOS POST
boot0 stage
boot2 stage
loader stage
Kernel initialization
Locking Notes
Table of Contents
Mutexes
Shared Exclusive Locks
Atomically Protected Variables
Kernel Objects
Table of Contents
Terminology
Kobj Operation
Using Kobj
The Jail Subsystem
Table of Contents
Architecture
Restrictions
The Sysinit Framework
Table of Contents
Terminology
SYSINIT Operation
Using SYSINIT
The TrustedBSD MAC Framework
Table of Contents
MAC Documentation Copyright
Synopsis
Introduction
Policy Background
MAC Framework Kernel Architecture
MAC Policy Architecture
MAC Policy Entry Point Reference
Userland Architecture
Conclusion
Virtual Memory System
Table of Contents
Management of physical memory--vm_page_t
The unified buffer cache--vm_object_t
Filesystem I/O--struct buf
Mapping Page Tables--vm_map_t, vm_entry_t
KVM Memory Mapping
Tuning the FreeBSD VM system
SMPng Design Document
Table of Contents
Introduction
Basic Tools and Locking Fundamentals
General Architecture and Design
Specific Locking Strategies
Implementation Notes
Miscellaneous Topics
Glossary
Device Drivers
Table of Contents
Writing FreeBSD Device Drivers
Table of Contents
Introduction
Dynamic Kernel Linker Facility - KLD
Accessing a device driver
Character Devices
Block Devices (Are Gone)
Network Drivers
ISA device drivers
Table of Contents
Synopsis
Basic information
Device_t pointer
Configuration file and the order of identifying and probing during auto-configuration
Resources
Bus memory mapping
DMA
xxx_isa_probe
xxx_isa_attach
xxx_isa_detach
xxx_isa_shutdown
xxx_intr
PCI Devices
Table of Contents
Probe and Attach
Bus Resources
Common Access Method SCSI Controllers
Table of Contents
Synopsis
General architecture
Polling
Asynchronous Events
Interrupts
Errors Summary
Timeout Handling
USB Devices
Table of Contents
Introduction
Host Controllers
USB Device Information
Device probe and attach
USB Drivers Protocol Information
Newbus
Table of Contents
Device Drivers
Overview of Newbus
Newbus API
Sound subsystem
Table of Contents
Introduction
Files
Probing, attaching, etc.
Interfaces
PC Card
Adding a device
Appendices
Bibliography
Index
FreeBSD Porter's Handbook
Copyright
Table of Contents
Introduction
Making a port yourself
Quick Porting
Table of Contents
Writing the Makefile
Writing the description files
pkg-descr
pkg-plist
Creating the checksum file
Testing the port
Checking your port with portlint
Submitting the port
Slow Porting
Table of Contents
How things work
Getting the original sources
Modifying the port
Patching
Configuring
Handling user input
Configuring the Makefile
Table of Contents
The original source
Naming
PORTNAME and PORTVERSION
PORTREVISION and PORTEPOCH
PKGNAMEPREFIX and PKGNAMESUFFIX
Package Naming Conventions
Categorization
CATEGORIES
Current list of categories
Choosing the right category
Proposing a new category
Proposing reorganizing all the categories
The distribution files
DISTVERSION/DISTNAME
MASTER_SITES
EXTRACT_SUFX
DISTFILES
EXTRACT_ONLY
PATCHFILES
Multiple distribution files or patches from different sites and subdirectories (MASTER_SITES:n)
DIST_SUBDIR
ALWAYS_KEEP_DISTFILES
MAINTAINER
COMMENT
Dependencies
LIB_DEPENDS
RUN_DEPENDS
BUILD_DEPENDS
FETCH_DEPENDS
EXTRACT_DEPENDS
PATCH_DEPENDS
DEPENDS
USE_*
Minimal version of a dependency
Notes on dependencies
Circular dependencies are fatal
MASTERDIR
Manpages
Info files
Makefile Options
KNOBS
OPTIONS
Specifying the working directory
WRKSRC
NO_WRKSUBDIR
CONFLICTS
Special considerations
Table of Contents
Shared Libraries
Ports with distribution restrictions
NO_PACKAGE
NO_CDROM
NOFETCHFILES
RESTRICTED
RESTRICTED_FILES
Building mechanisms
make, gmake, and imake
configure script
Using scons
Using GNU autotools
Introduction
libtool
libltdl
autoconf and autoheader
automake and aclocal
Using GNU gettext
Basic usage
Optional usage
Handling message catalog directories
Using Perl
Using X11
Variable definitions
Ports that require Motif
X11 fonts
Getting fake DISPLAY using Xvfb
Desktop entries
Using GNOME
Using KDE
Using Java
Variable definitions
Building with Ant
Best practices
Using Apache and PHP
Apache
PHP
PEAR modules
Using Python
Using Emacs
Using Ruby
Using SDL
Using wxWidgets
Using Lua
Introduction
Version selection
Component selection
Detecting installed versions
Defined variables
Processing in bsd.port.pre.mk
Starting and stopping services (rc scripts)
Advanced pkg-plist practices
Changing pkg-plist based on make variables
Empty directories
Cleaning up empty directories
Creating empty directories
Configuration files
Dynamic vs. static package list
Automated package list creation
The pkg-* files
Table of Contents
pkg-message
pkg-install
pkg-deinstall
pkg-req
Changing the names of pkg-* files
Making use of SUB_FILES and SUB_LIST
Testing your port
Table of Contents
Running make describe
Portlint
PREFIX and DESTDIR
Tinderbox
Upgrading
Ports security
Table of Contents
Why security is so important
Fixing security vulnerabilities
Keeping the community informed
The VuXML database
A short introduction to VuXML
Testing your changes to the VuXML database
If VuXML still scares you...
Dos and Don'ts
Table of Contents
Introduction
Stripping Binaries
INSTALL_* macros
WRKDIR
WRKDIRPREFIX
Differentiating operating systems and OS versions
__FreeBSD_version values
Writing something after bsd.port.mk
Install additional documentation
Subdirectories
Use the exec statement in wrapper scripts
UIDs and GIDs
Do things rationally