FreeBSD
Nik Clayton
nik@FreeBSD.org nik@crf-consulting.co.uk nik@slashdot.org

FreeBSD in a nutshell
Open Source (free) Unix operating system
Runs on IA32, IA64, AMD-Hammer, Alpha, Sparc, PPC
Supports wide range of peripherals
1000’s of software packages available
Many commercial users
Thousands of developers around the world contributing to it
Core component of many embedded systems

Why the demon?
It’s a “daemon”, not a demon
Greek “daemons” were neutral spirits that fetched and carried
Geek “daemons” are programs that continuously run, doing useful things
Serving web pages
Shuttling e-mail back and forth
Handling print requests
httpd, named, lpd, et al

FreeBSD is Unix
To all intents and purposes, FreeBSD is Unix™
Multitasking
Multiuser
Emphasis on command line tools
Network ready and remotely accessible
Terse, cryptic, but very, very, powerful :-)
“Unix is a nice place to live, but you wouldn’t want to visit”
“Unix does not stop you doing stupid things, because that would also stop you doing clever things”

FreeBSD History
1969 Work begins on Unix at AT&T Bell Labs
1971 Unix, First Edition
1972 “The number of Unix installations has grown to 10, with more expected” , Dennis Ritchie
1973 Unix re-written in C
1975 Unix, Sixth Edition.  First version widely available outside AT&T
1976 1BSD, based on Sixth Edition.  Bill Joy coins the term
“Berkeley Software Distribution”
1979 3BSD. Unix gets Virtual Memory
1984 4.2BSD.  First deployment of TCP/IP in the world
1991 4.3BSD NET/2

FreeBSD History
1992 386BSD 0.1, based on 4.3/NET2
1993 FreeBSD 1.0
1995 FreeBSD 2.0
1998 FreeBSD 3.0
2000 FreeBSD 4.0
2001 FreeBSD 4.4
2002 FreeBSD 5.0

Places you’ll find FreeBSD
Powering websites
Yahoo
VA Linux / OSDN / Slashdot
Netcraft
“Grunt work”
Disney
Manex VFX
NASA
ISPs
UUNet, Pair, Demon, EasyNet, …
Embedded Systems
IBM
Intel
Nokia
Checkpoint
Juniper Networks
Coyote
Other operating systems
Mac OS X

FreeBSD is a complete OS
FreeBSD consists of all the components needed for a complete operating system
kernel
compiler
include files
libraries
user-land utilities
Kernel and user-land are kept synchronised, and can be built, from source, as a unit

Technology support
Networking
IPv4, IPv6, IPSec, SSL
Firewall
NAT
Filtering, Proxying, and Caching
VPN
Infrastructure
DNS
DHCP (client and server)
Telephony
PPP (dial-in, dial-out)
Fax (send/receive)
Printing
Postscript
Network printing
File sharing
NFS
SMB/CIFS
Appletalk
E-mail
SMTP, POP3, IMAP, Webmail
Web
HTTP

Benchmarks
This space for rent

Third Party Packages
5,800+ applications available as binary packages
Linux has similar number of applications available in a number of different binary formats (RPM, Deb, and others, depending on the distribution).
Packages are built from the “ports tree”
Ports tree is a mechanism that automates the process of downloading, checksumming, unpacking, patching, configuring, building, and installing new software

Ports Tree Growth

Development Organisation
Two layers of FreeBSD organisation
The committers, and everyone else
Committers have write access to the source tree
Everyone else submits patches or bug reports using FreeBSD's problem reporting system, and waits for a committer to commit the change
Individuals who submit many patches (that work) are invited to become committers
9 committers form the elected "core team", for dispute resolution

Development Organisation

FreeBSD Licensing Model
FreeBSD distributed under "2 clause" BSD license
Copyright © [year] [name]
All rights reserved
Redistribution in source and binary forms, with or without modification, are permitted, provided that the following conditions are met:

1. Redistribution of source code must retain the above copyright notice, this list of conditions, and the disclaimer.
2. Redistributions in binary form 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.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS", AND ANY EXPRESS OR IMPLIED LIMITED WARANTIES...

FreeBSD Licensing Model
Don't claim that you wrote the code
Don't blame us if the code doesn't work
Apart from that, do anything you want with the code

The GPL and BSD Licenses
The GPL mandates that source code be disclosed
The BSD License allows source code changes to be kept secret
GPL is often categorised as "Copyleft", as distinct from "Copyright"
BSD License is "Copycentre".  We actively encourage third parties to use the source code.
Donating changes back is purely at the discretion of the party making the changes

Source Code Control
The entire source code for FreeBSD  is stored in a CVS repository
The logs, and individual changes for each file can be traced back to 1994.
The source tree can be checked out at any state, or corresponding to any release
CDs are available taking the history back a further 25 years

Source Code Control
Changes to the FreeBSD tree are available in a number of ways (CVS, CVSup, CTM (e-mail), Web)
It is possible to maintain a local mirror of the complete CVS tree
You can 'tag' a local copy of the tree as buildable, and then selectively include changes from FreeBSD

FreeBSD Release Model
FreeBSD releases maintained using CVS branches
Head of the tree (-current) will become FreeBSD 5.0
Last major release (4.0) was branched (-stable)
Subsequent minor releases (4.1, 4.2, etc) consist of bug fixes backported from -current, and new features in -current that have been extensively tested
Everyone has complete access to the source code at all times, so incremental releases are not a "Flag day"

FreeBSD Release Model

FreeBSD Release Model

Source Code Distribution
FreeBSD Source Code
Available on CD and DVD
Can be downloaded from ftp.freebsd.org
Install using two floppy disks, or download ISO images and burn your own CDs
Changes to the source code
Can be updated using CVS
Can be updated using CVSup (faster CVS)
Can be browsed, with history, on the web, at http://www.freebsd.org/cgi/cvsweb.cgi

Linux Compatability
Oracle
Netscape
RealPlayer
Flash
NetBackup
Quake III

Sample Deployment

Slide 26

VPN Configuration

FreeBSD on the Desktop
GNOME
KDE
StarOffice
Netscape
WordPerfect
VMWare
Acrobat
GIMP
CD burning
MP3 ripping/playing
Gnutella / Napster / Limewire
Afterstep / Enlightenment / Sawfish / BlackBox / IceWM …

Slide 29

Slide 30

Slide 31

Slide 32

Comparisons to Linux
FreeBSD has a 30+ year code lineage
FreeBSD developed as a complete unit
A less restrictive license
FreeBSD widely recognised as performing better, particularly under high load
Cuter logo :-)

For more information
http://www.freebsd.org/
http://www.bsdconeurope.org/
http://ukug.uk.freebsd.org/
http://www.daemonnews.org/
http://www.slashdot.org/bsd/