<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
<!ENTITY base CDATA "..">
<!ENTITY date "$FreeBSD$">
<!ENTITY title "FreeBSD Development Projects">
<!ENTITY % navinclude.developers "INCLUDE">

<!ENTITY url.articles "../doc/en_US.ISO8859-1/articles">
<!ENTITY url.books "../doc/en_US.ISO8859-1/books">
]>

<html>
&header;

<a name="development"></a>

<p>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.</p>

If you feel that a project is missing, please send the URL and a short
description (3-10 lines) to
<A HREF="../mailto.html">www@FreeBSD.org</A>.

<p>In addition, some of these projects regularly submit status reports,
which can be viewed on the <a href="../news/status/status.html">status
reports page</a>.</p>

<ul>
  <li><a href="#documentation">Documentation</a></li>
  <li><a href="../advocacy/index.html">Advocacy</a></li>
  <li><a href="#applications">Applications</a></li>
  <li><a href="#networking">Networking</a></li>
  <li><a href="#storage">Storage</a></li>
  <li><a href="#kernelandsecurity">Kernel and Security</a></li>
  <li><a href="#devicedrivers">Device drivers</a></li>
  <li><a href="#architecture">Architecture</a></li>
  <li><a href="#misc">Misc</a></li>
  <li><a href="summerofcode.html">Google Summer of Code</a></li>
</ul>

<a name="documentation"></a>
<h3>Documentation</h3>
<ul>
<li><a href="../docproj/docproj.html">FreeBSD Documentation Project</a>:
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.</li>

<li><a name="newbies" href="newbies.html">FreeBSD Resources for Newbies</a>:
A list of resources to help those new to FreeBSD and &unix; in
general.</li>

<li><a name="BSDsites" href="http://mirrorlist.FreeBSD.org/">
RELEASE/SNAP finder for FreeBSD FTP servers</a>:
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).</li>

<li><a name="diary" href="http://www.freebsddiary.org/">The FreeBSD
Diary</a>: 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.</li>

<li><a href="&url.books;/developers-handbook/index.html">
The FreeBSD Developers' Handbook</a></li>

<li><a href="&url.articles;/contributing-ports/index.html">
Contributing to the FreeBSD Ports Collection</a></li>

</ul>

<a name="applications"></a>
<h3>Applications</h3>
<ul>
<li><a name="java" href="../java/index.html">&java; on FreeBSD</a>:
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.</li>

<li><a name="gnome" href="../gnome/index.html">GNOME on FreeBSD</a>:
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.</li>

<li><a name="kde" href="http://freebsd.kde.org">KDE on FreeBSD</a>:
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.</li>

<li><a name="mono" href="http://www.mono-project.com/Mono:FreeBSD">
Mono on FreeBSD</a>:
Here you can find information about the state of Mono and C# for FreeBSD.</li>

<li><a name="openoffice" href="http://porting.openoffice.org/freebsd/">
OpenOffice.org on FreeBSD</a>:
Information about the various OpenOffice.org ports.</li>

<li><a href="../ports/index.html">FreeBSD Ports Collection</a>:
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.</li>

<li><a href="http://people.FreeBSD.org/~fenner/portsurvey/">FreeBSD Ports distfiles survey</a>:
A list which checks the Ports Collection for unfetchable distfiles
and provides a summary for each port.</li>

<li><a href="http://FreshPorts.org/">FreshPorts</a>: 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.</li>

<li><a href="http://pointyhat.FreeBSD.org/">Pointyhat</a>: Is a server which
  checks the Ports Collection and keeps package building logs and error
  logs for each port.</li>
</ul>

<a name="networking"></a>
<h3>Networking</h3>
<ul>
<li><a name="netperf" href="&base;/projects/netperf/index.html">Netperf</a>:
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.</li>
<li><a name="kame" href="http://www.kame.net/">KAME Project</a>: A free IPv6/IPsec stack for BSD.</li>
<li><a name="SYSLOG-SECURE" href="http://www.faqs.org/rfcs/rfc3164.html">SYSLOG-SECURE</a>:
In August 2001 a standard of syslog was made: RFC3164. This RFC
describes some extensions to add security to syslog. A project
started in 2002 to adapt RFC3164 to the FreeBSD version of syslog and to add
some security extensions, at least syslog-sign. Both libc and syslogd will
be modified.  And optionally some tools to verify or manage the security
would be made.
All help is welcome. Send an email to albert@ons-huis.net for info.</li>
</ul>

<a name="storage"></a>
<h3>Storage</h3>
<ul>
<li><a name="afs" href="http://www.stacken.kth.se/projekt/arla/">Arla</a>:
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.</li>

<li><a name="bigdisk" href="&base;/projects/bigdisk/index.html">Big Disk</a>:
The goal of the <em>Large data storage in FreeBSD</em> project is to make
FreeBSD ready for multi-terabyte drive/volume capacities and file systems.</li>

<li><a name="coda" href="http://www.coda.cs.cmu.edu/">Coda</a>:
A distributed filesystem.  Among its features are disconnected
operation, good security model, server replication and persistent
client side caching.</li>

<li><a name="journaling" href="http://www.ece.cmu.edu/~ganger/papers/">
Journaling versus Soft Updates</a>: Asynchronous Meta-data Protection in File Systems.</li>

<li><a name="tcfs" href="http://www.tcfs.unisa.it/">TCFS</a>:
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.</li>

<li><a name="Tertiary" href="http://now.cs.berkeley.edu/Td/">Tertiary Disk</a>:
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.</li>

<li><a name="vinum" href="http://www.vinumvm.org/">Vinum</a>:
A logical volume manager modeled after the VERITAS volume manager&trade;.
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.</li>

<li><a name="PathConvert" href="http://www.tamacom.com/pathconvert/">
The PathConvert project</a>: 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.</li>
</ul>

<a name="kernelandsecurity"></a>
<h3>Kernel, security</h3>
<ul>
<li><a name="kse" href="../kse/index.html">Kernel Scheduler Entities</a>:
A project to enhance the threading support on FreeBSD, using a threading
system similar in design to Scheduler Activations.</li>

<li><a name="lotteryscheduling"
href="http://www.cs.cmu.edu/~dpetrou/research.html">
Lottery Scheduling Kernel</a>: 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.</li>

<li><a name="openbsm" href="http://www.OpenBSM.org/">OpenBSM</a>: 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.</li>

<li><a name="SMP" href="&base;/smp/index.html">Symmetric MultiProcessor Support</a>:
Documentation and other information about taking advantage of multiple
processors under FreeBSD.</li>

<li><a name="trustedbsd" href="http://www.TrustedBSD.org/">TrustedBSD</a>:
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.</li>

<li><a name="kernelstresstest"
  href="http://www.holm.cc/stress/">Kernel Stress Test Suite</a>:  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.</li>

</ul>

<a name="devicedrivers"></a>
<h3>Device drivers</h3>
<ul>

<li><a name="busdma" href="&base;/projects/busdma/index.html">busdma
and SMPng driver conversion</a>: 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.</li>

<li><a name="deviceframework" href="http://people.FreeBSD.org/~dfr/devices.html">
A New Device Framework for FreeBSD</a></li>

<li><a name="atm" href="http://chuck.cranor.org/p/bsdatm.pdf"> BSD ATM: implementation of ATM internetworking under 4.4BSD</a>:
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.</li>

<li><a name="homeauto" href="http://people.FreeBSD.org/~fsmp/HomeAuto/HomeAuto.html">Home Automation</a>:
Using FreeBSD to run appliance controllers, infra-red controllers,
automated telephone systems, and more.</li>

<li><a name="tokenring" href="http://www.jurai.net/~winter/tr/">The FreeBSD Token-Ring Project</a>:
Information, files, patches, and documentation about adding Token Ring
support to FreeBSD.</li>

<li><a name="xircomcem">Xircom CEM Ethernet Driver</a>: A mailing list exists for further
development of Scott Mitchell's Xircom CEM ethernet driver.  Send
<tt>subscribe freebsd-xircom</tt> to <a
  href="mailto:majordomo@lovett.com">majordomo@lovett.com</a> to
join.</li>
</ul>

<a name="architecture"></a>
<h3>Architecture</h3>
<ul>
<li><a name="ia64" href="../platforms/ia64/index.html">
Porting FreeBSD to IA-64 systems</a>:
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. </li>

<li><a name="ppc" href="../platforms/ppc.html">Porting FreeBSD to PowerPC&reg; systems</a>:
Contains information on the FreeBSD PPC port, such as mailing list
information and so on.</li>

<li><a name="sparc" href="../platforms/sparc.html">Porting FreeBSD to SPARC&reg; systems</a>:
Contains information on the FreeBSD SPARC port including a FAQ,
some early boot code, information on SPARC processors and motherboards,
and other SPARC projects.</li>

<li><a name="sysvr4" href="http://slash.dotat.org/~newton/freebsd-svr4/">
SysVR4 Emulation</a>: 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&trade;/x86
2.5.1 and 2.6 systems. I have reason to believe that it will also run
SCO UnixWare and SCO OpenServer binaries.</li>

<li><a name="oskit" href="http://www.cs.utah.edu/flux/oskit/">The OSKit</a>:
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&amp;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.</li>
</ul>

<a name="misc"></a>
<h3>Misc</h3>
    <ul>
      <li><a name="freesbie" href="http://www.freesbie.org/">FreeSBIE</a>:
	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.</li>

      <li><a name="nanobsd" href="&url.articles;/nanobsd/index.html">NanoBSD</a>:
	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.  The FreeBSD documentation
	collection includes an introductory
	<a href="&url.articles;/nanobsd/index.html">article about NanoBSD</a>,
	which includes useful tips about setting up, running and
	using NanoBSD.</li>

      <li><a name="global" href="http://www.gnu.org/software/global/global.html">GLOBAL</a>:
	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.</li>

      <li><A name="enterman" href="http://ezine.daemonnews.org/199908/enteruser.html">Enteruser</a>: A Replacement for adduser.</li>

      <li><A name="acpi"
	href="&base;/projects/acpi/">ACPI on FreeBSD</A>:
	A Project created to get ACPI working smoothly on FreeBSD.</li>

      <li><A name="binup"
        href="http://www.daemonology.net/freebsd-update/">Binary
        Updater</a>:  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.</li>

      <li><a name="c99" href="&base;/projects/c99/index.html">The
	FreeBSD C99 &amp; &posix; Conformance Project</a>: This project aims to
	implement all requirements of the ISO 9899:1999 (C99) and
	IEEE 1003.1-2001 (POSIX) standards.</li>

      <li><a name="cvsweb" href="cvsweb.html">CVSweb</a>: 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.</li>

      <li><a name="flcl"
	href="http://laptop.bsdgroup.de/freebsd/"> The FreeBSD
	Laptop Compatibility List</a>: A comprehensive database of
	laptops and PCMCIA cards that work with FreeBSD.  This site
	contains detailed information about known hardware and
	software issues.</li>

      <li><a name="tetintegration" href="http://wiki.freebsd.org/TetIntegration">TET
	Integration</a>: The Test Execution Toolkit from <a
	href="http://www.opengroup.org/">The Open Group</a> is a
	light-weight open-source test execution framework that
	supports distributed testing.  This project investigates
	using TET and existing TET-based open-source standards-compliance
	test suites (VSX-PCTS, VSC-Lite, VSTH-Lite, VSW5 and others) in
	FreeBSD.</li>

</ul>


&footer;
</body>
</html>
