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
- Contributing
to the FreeBSD Ports Collection
- 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.
- NanoBSD: NanoBSD is a
tool designed to create a possibly reduced FreeBSD system image, which is suited to fit
on a Compact Flash card (or other mass storage medium) in a way which is suitable for use
in appliance like applications.
- 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.