FreeBSD Development Projects
In addition to the mainstream development path of
FreeBSD, a number of developer groups are working on
the cutting edge to expand FreeBSD's range of
applications in new directions. Follow the links below
to learn more about these exciting projects.
If you feel that a project is missing, please send the
URL and a short description (3-10 lines) to
www@FreeBSD.org.
In addition, some of these projects regularly submit
status reports, which can be viewed on the status reports
page.
Documentation
- FreeBSD
Documentation Project: The FreeBSD Documentation
Project is a group of people who maintain and write
the documentation (such as the Handbook and FAQ) for
the FreeBSD project. If you want to help with the
documentation project, subscribe to the
freebsd-doc@FreeBSD.org mailing list and
participate.
- FreeBSD Resources for
Newbies: A list of resources to help those new to
FreeBSD and UNIX® in general.
- RELEASE/SNAP
finder for FreeBSD FTP servers: A resource that
would allow anyone to find a FTP server that contains
particular releases and SNAP of FreeBSD. The database
is updated daily at 3am Melbourne time (10 hours
ahead of UTC).
- The FreeBSD
Diary: A collection of how-to entries aimed at
UNIX novices. The aim is to provide a set of
step-by-step guides to installing and configuring
various ports.
- A
Comprehensive Guide to FreeBSD: An attempt at a
more readable, "book-like" tutorial explaining the
FreeBSD Operating System. Intended for people new to
both FreeBSD and UNIX. Currently a work in
progress.
- FreeBSD
How-To's for the Lazy and Hopeless: Another
somewhat more light-hearted attempt to provide more
readable "how-to" style information on setting up and
configuring FreeBSD.
-
The Linux+FreeBSD mini-HOWTO: Describes how to
use Linux and FreeBSD on the same system. It
introduces FreeBSD and discusses how the two
operating systems can cooperate, e.g. by sharing swap
space.
-
The FreeBSD Developers Handbook
-
The FreeBSD Cook Book: Ok, you got FreeBSD
installed, now what? Here are some suggested
solutions to common problems you can implement with
the knowledge you now have. This document is styled
after the electronics cook books with some recipes
for some common types of installations. Each "recipe"
has some recommended minimum hardware, specific
software to use, and most important the configuration
information required to get the system running
correctly.
- The
FreeBSD Corporate Networker's Guide: This Web
site serves as a supplement to The FreeBSD Corporate
Networker's Guide, with the principal goal of
enhancing its usefulness. While books like fictional
novels can be used and enjoyed for hundreds of years
after initial publication, technical manuals like the
Networker's Guide are obsoleted in a few years by
changes in the product they are written for.
Applications
- Java™ on FreeBSD:
This contains information on where to obtain the
latest JDK™ for FreeBSD, how to install and run
it, and a list of Java™ software that you may
find interesting.
- GNOME on FreeBSD: This
contains information on where to obtain the latest
GNOME for FreeBSD, how to install and run it, latest
project news and updates, FAQ covering
FreeBSD-specific GNOME issues, application porting
guidelines and much more.
- KDE on FreeBSD:
This contains links to the latest KDE releases for
FreeBSD, as well as documentation and tutorials about
how to install and run KDE on FreeBSD. Project news
and a FreeBSD-specific FAQ are also available.
- Mono
on FreeBSD: Here you can find information about
the state of Mono and C# for FreeBSD.
- OpenOffice.org
on FreeBSD: Information about the various
OpenOffice.org ports.
- FreeBSD Ports
Collection: The FreeBSD Ports Collection provides
an easy way to compile and install a wide range of
applications with a minimum amount of effort. A list
of current ports is available along with a search
mechanism to see if a specific application exists in
the Ports Collection.
- FreeBSD
Ports distfiles survey: A list which checks the
Ports Collection for unfetchable distfiles and
provides a summary for each port.
- FreshPorts:
Provides the most up-to-date list of ports and port
changes. Add your favourite ports to your watch list
and receive email notification of any changes.
- Pointyhat:
Is a server which checks the Ports Collection and
keeps package building logs and error logs for each
port.
Networking
- Netperf:
Network stack optimization for the FreeBSD 5.x and
6.x kernels, a follow-on to the SMPng network stack
locking work for FreeBSD 5.3. This project is
exploring and implementing optimizations strategies
for a multi-threaded network stack.
- Dingo:
FreeBSD Network Cleanup and Consolidation
Project, is a collection of work that needs to
be done to clean up and advance the FreeBSD network
stack. The goal is to remove duplicated functionality
while also adding new features that will make FreeBSD
simple to use, both for the network engineer,
experimenter and the first time user.
-
ALTQ: bandwidth management for applications.
- KAME Project: A free
IPv6/IPsec stack for BSD.
- Point to
Point Protocol (PPP)
- Secure
MobileIP via IP
- SYSLOG-SECURE: In August
2001 a standard of syslog was made: RFC3164. This RFC
describes some extensions to add security to syslog.
The project started in 2002 is to adapt RFC3164 to
FreeBSD version of syslog, and to add some security
extensions. At least syslog-sign. Both libc and
syslogd will be modified. And optional some tools to
verify/manage the security will made. All help is
welcome. Send an email to albert@ons-huis.net for
info.
Storage
- HFS
and HFS Plus in FreeBSD: This project is aimed at
integrating HFS support from Darwin into
FreeBSD.
- Arla:
A free AFS client implementation. The main goal is to
make a fully functional client with all capabilities
of normal AFS. Other planned and implemented things
are all the normal management tools and a
server.
- Big Disk:
The goal of the Large data storage in
FreeBSD project is to make FreeBSD ready for
multi-terabyte drive/volume capacities and file
systems.
- Coda: A
distributed filesystem. Among its features are
disconnected operation, good security model, server
replication and persistent client side caching.
- Cryptfs:
Encrypts file names and data pages using
Blowfish.
- Journaling
versus Soft Updates: Asynchronous Meta-data
Protection in File Systems.
- Mode
locking
- Make
the namei interface reflexive
- NFS
client and server locking
-
The Design and Implementation of a DCD Device Driver
for Unix
- NTFS
Driver for FreeBSD: This driver allows
Windows® NTFS partitions to be mounted by
FreeBSD. Currently NTFS partitions can only be
accessed in read-only mode, but plans are in the
works for read/write access.
- Rio (RAM
I/O): The Rio project is investigating how to
implement and use reliable memory. Reliable memory
enables dramatic improvements in reliability and
performance.
-
Soft Updates: A Solution to the Metadata Update
Problem in File Systems
- TCFS: A Transparent
Cryptographic File System that is a suitable solution
to the problem of privacy for distributed filesystem.
By a deeper integration between the encryption
service and the filesystem, it results in a complete
transparency of use to the user applications. Files
are stored in encrypted form and are decrypted before
they are read. The encryption/decryption process
takes place on the client machine and thus the
encryption/decryption key never travels on the
network.
- Tertiary
Disk: A storage system architecture to create
large disk storage systems that avoid the
disadvantages of custom built disk arrays. The name
comes from twin goals: to have the cost per megabyte
and capacity of tape libraries and the performance of
magnetic disks. We use commodity, off the shelf
components to develop a scalable, low cost, terabyte
capacity disk system. Our target is to build a
complete storage system with about 30-50% extra to
the cost of the raw disk. Tertiary Disk uses PCs
connected by a switched network to host a large
number of disks. Our prototype consists of 20 200MHz
PC PCs, which host 370 8GB disks. The PCs are
connected through a 100Mbps Ethernet switch.
- Vinum: A logical
volume manager modeled after the VERITAS volume
manager™. However, it is not a clone of
Veritas, and attempts to solve a number of problems
more elegantly than Veritas. It also offers features
that Veritas does not have.
- The
PathConvert project: A project to develop
utilities which make conversion between absolute path
name and relative path name. It brings benefits
mainly to the users of NFS and WWW.
Kernel, security
- Drawbridge: A
firewall package that was developed at Texas A&M
University and was designed with a large academic
environment in mind. It's greatest strength is the
ability to perform high speed packet filtering for a
larger number of individual hosts within an
intranetwork.
- Kernel Scheduler
Entities: A project to enhance the threading
support on FreeBSD, using a threading system similar
in design to Scheduler Activations.
- Lottery
Scheduling Kernel: This work is based on
Waldspurger's lottery scheduling algorithm, which
implements proportional-share resource management.
The primary advantages are that users have strict
control over the relative execution rates of their
processes, and users are load-insulated from each
other, preventing one user from dominating the
CPU.
- OpenBSM: An open
source implementation of Sun's Basic Security Module
(BSM) Audit API and file format. OpenBSM provides the
userland libraries, tools, and documentation for the
TrustedBSD audit implementation that will be
integrated into FreeBSD.
- Symmetric MultiProcessor
Support: Documentation and other information
about taking advantage of multiple processors under
FreeBSD.
- A
validation suite for testing for kernel memory
leaks
- SPY:
Allows you to monitor and/or selectively block
syscalls on your system. It could be used either as a
safety monitoring device, policy enforcement, or
debugging tool.
- TrustedBSD:
Provides a set of trusted operating system extensions
to the FreeBSD operating system. This includes
features such as fine-grained privileges
(capabilities), Access Control Lists, and Mandatory
Access Control. These features are being integrated
back into the base FreeBSD distribution, as well as
being ported to other BSD-derived systems.
- Kernel Stress Test
Suite: The purpose of this stress test is to
crash the system. The stress test is composed of
small test programs and scripts. Each test targets a
specific area of the kernel. The key concept of this
test suite is chaos. Each test sleeps for a random
number of seconds before it starts up in a random
number of invocations.
Device drivers
- busdma and SMPng
driver conversion: busdma provides a portable
abstraction to the Direct Memory Access (DMA)
hardware primitives used by many high performance
device drivers. By using this abstraction, device
driver authors avoid adding platform-specific DMA
management code, improving the portability of drivers
between hardware architectures. This page also tracks
the progress of drivers towards being
SMPng-safe.
- A
New Device Framework for FreeBSD
-
BSD ATM: implementation of ATM internetworking under
4.4BSD: New computer applications in areas such
as multimedia, imaging, and distributed computing
demand high levels of performance from computer
networks. ATM-based networking solutions provide one
possible alternative to meeting these performance
needs. However, the complexity of ATM over
traditional networks such as Ethernet has proven to
be a barrier to its being used. In this paper we
present the design and implementation of BSD ATM, a
light-weight and efficient ATM software layer for
BSD-based operating systems that requires minimal
changes to the operating system. BSD ATM can be used
both for IP-based networking traffic and for
``native'' ATM traffic.
-
Home Automation: Using FreeBSD to run appliance
controllers, infra-red controllers, automated
telephone systems, and more.
-
CAM: New SCSI layer for FreeBSD: Details about
what the new CAM SCSI layer is, and how it
works.
- The
FreeBSD Token-Ring Project: Information, files,
patches, and documentation about adding Token Ring
support to FreeBSD.
- Xircom CEM
Ethernet Driver: A mailing list exists for
further development of Scott Mitchell's Xircom CEM
ethernet driver. Send subscribe
freebsd-xircom to majordomo@lovett.com
to join.
- List of supported RAID
Cards: Mike Smith's list
of supported RAID cards and their respective
information.
Architecture
- Porting FreeBSD to
Alpha systems: Contains information on the
FreeBSD Alpha port such as the status, mailing list
information, the hardware used, and other Alpha
projects.
- Porting FreeBSD
to IA-64 systems: This project is responsible for
porting FreeBSD to the IA-64 architecture. Direct any
questions specific to this project to the
freebsd-ia64@FreeBSD.org mailing list.
- Porting FreeBSD to
PowerPC® systems: Contains information on the
FreeBSD PPC port, such as mailing list information
and so on.
- Porting FreeBSD to
SPARC® systems: Contains information on the
FreeBSD SPARC port including a FAQ, some early boot
code, information on SPARC processors and
motherboards, and other SPARC projects.
- SysVR4
Emulation: This page describes an SysVR4 emulator
for FreeBSD. It is currently capable of running (or
walking, in some cases) a wide-ish variety of SysV
executables taken from Solaris™/x86 2.5.1 and
2.6 systems. I have reason to believe that it will
also run SCO UnixWare and SCO OpenServer
binaries.
- The
OSKit: The OSKit is a framework and a set of 31
component libraries oriented to operating systems,
together with extensive documentation. By providing
in a modular way not only most of the infrastructure
"grunge" needed by an OS, but also many higher-level
components, the OSKit's goal is to lower the barrier
to entry to OS R&D and to lower its costs. The
OSKit makes it vastly easier to create a new OS, port
an existing OS to the x86 (or in the future, to other
architectures supported by the OSkit), or enhance an
OS to support a wider range of devices, filesystem
formats, executable formats, or network services. The
OSKit also works well for constructing OS-related
programs, such as boot loaders or OS-level servers
atop a microkernel.
- Small and
embedded FreeBSD (PicoBSD): PicoBSD is a one
floppy version of FreeBSD which in its different
variations allows you to have secure dial-up access,
small diskless router, or even a dial-in server. All
of this on only one standard 1.44MB floppy disk. It
runs on a minimum 386SX CPU with 8MB of RAM, and no
hard drive is required!
Misc
- FreeBSD list of projects
and ideas for volunteers: A maintained list of
interesting projects and ideas that the FreeBSD
project would like to encourage volunteers and
developers to evaluate and work on. This is a good
starting point for volunteers who would like to
become committers in the future.
- FreeSBIE: A live
CD based on the FreeBSD operating system. It includes
a broad range of useful applications, and can either
run purely from CD, or can act as an installer to
install FreeBSD on your hard disk.
-
GLOBAL: A common source code tag system that
works the same way across diverse environments.
Currently, it supports the shell command line, the
nvi editor, web browser, the emacs editor, and the
elvis editor, and the supported languages are C,
Yacc, and Java.
- FreeBSD
source code tour: A hypertext cross referenced
presentation of the FreeBSD kernel source code. The
versions indexed are -CURRENT and RELENG_4.
-
Enteruser: A Replacement for adduser.
- ACPI on FreeBSD: A
Project created to get ACPI working smoothly on
FreeBSD.
- Binary
Updater: FreeBSD Update is a system for
automatically building, distributing, fetching, and
applying binary security updates for FreeBSD. This
makes it possible to easily track the FreeBSD
security branches without the need for fetching the
source tree and recompiling (except on the machine
building the updates, of course). Updates are
cryptographically signed; they are also distributed
as binary diffs using a binary diff tool, which
dramatically reduces the bandwidth used.
- The FreeBSD C99
& POSIX® Conformance Project: This
project aims to implement all requirements of the ISO
9899:1999 (C99) and IEEE 1003.1-2001 (POSIX)
standards.
- CVSweb: A WWW interface for
CVS repositories with which you can browse a file
hierarchy on your browser to view each file's
revision history in a very handy manner.
- The
FreeBSD Laptop Compatibility List: A
comprehensive database of laptops and PCMCIA cards
that work with FreeBSD. This site contains detailed
information about known hardware and software
issues.
- The
FreeBSD Tinderbox: The Tinderbox continuously
builds the active branches of the FreeBSD source tree
to detect build problems. When a tinderbox build
fails it sends an email to the appropriate mailing
list, so that the build can be fixed as fast as
possible. The Tinderbox source code is maintained in
the FreeBSD CVS repository in the directory
src/tools/tools/tinderbox.
- The FreeBSD GNATS
Upgrade: This page details the tasks, timeline
and implementation involved in upgrading the FreeBSD
bug tracking system from GNATS 3 to GNATS 4.