1566 lines
63 KiB
Text
1566 lines
63 KiB
Text
<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
|
|
<!ENTITY base CDATA "../..">
|
|
<!ENTITY date "$FreeBSD: www/en/projects/ideas/index.sgml,v 1.80 2007/02/12 20:50:30 joel Exp $">
|
|
<!ENTITY title "FreeBSD list of projects and ideas for volunteers">
|
|
<!ENTITY % navinclude.developers "INCLUDE">
|
|
<!ENTITY % developers SYSTEM "../../developers.sgml"> %developers;
|
|
<!ENTITY man.vi.1 "<a href='http://www.FreeBSD.org/cgi/man.cgi?query=vi&sektion=1'>vi(1)</a>">
|
|
<!ENTITY man.wi.4 "<a href='http://www.FreeBSD.org/cgi/man.cgi?query=wi&sektion=4'>wi(4)</a>">
|
|
<!ENTITY man.tar.1 "<a href='http://www.freebsd.org/cgi/man.cgi?query=tar&sektion=1'>tar(1)</a>">
|
|
]>
|
|
|
|
<!--
|
|
README
|
|
|
|
1. Feel free to commit new ideas to the list, but try to follow the existing
|
|
style used in this document.
|
|
2. Big structural changes should be done in collaboration with joel. He is
|
|
always working on improvements and would like to review major changes
|
|
before they are committed to the tree.
|
|
3. Keep entries sorted alphabetically.
|
|
-->
|
|
|
|
<html>
|
|
&header;
|
|
|
|
<h2>Introduction</h2>
|
|
|
|
<p>The FreeBSD project has hundreds of active developers spread all over the
|
|
world, and many of them have their own parts of the source-tree that they
|
|
work on. However, there are always a lot of new interesting projects and
|
|
ideas that needs to be investigated and evaluated, and this is where the
|
|
FreeBSD project relies on heroic efforts from volunteers. The following
|
|
list of possible projects is in no way complete, but it should serve as a
|
|
nice starting point for volunteers who would like to become committers in
|
|
the future.</p>
|
|
|
|
<p>Please note that we cannot guarantee that your work will be included in the
|
|
FreeBSD source tree. This is because people tend to disagree about specifics
|
|
in the implementation of new features or functionality. However, if you can
|
|
find a developer who is interested in your work, and you can get him or her
|
|
to review it, then you are pretty far on your way to get your code into the
|
|
FreeBSD source tree.</p>
|
|
|
|
<p>If you have any non-technical questions about this list, please contact <a
|
|
href="mailto:netchild@FreeBSD.org">&a.netchild;</a> and <a
|
|
href="mailto:joel@FreeBSD.org">&a.joel;</a>. Technical questions
|
|
should be directed to the Technical contact for each project, or to the <a
|
|
href="mailto:hackers@FreeBSD.org">hackers mailinglist</a>.</p>
|
|
|
|
<hr>
|
|
|
|
<h3>File System</h3>
|
|
<ul>
|
|
<li><a href="#p-autofs">AutoFS</a></li>
|
|
<li><a href="#p-extenddump">Extend UFS2 dump/restore support</a></li>
|
|
<li><a href="#p-magicsymlinks">Magic Symlinks</a></li>
|
|
<li><a href="#p-mdfs">MDFS lockups</a></li>
|
|
<li><a href="#p-tarfs">Tarfs</a></li>
|
|
<li><a href="#p-tmpfs">TMPFS</a></li>
|
|
<li><a href="#p-zfs">ZFS</a></li>
|
|
</ul>
|
|
|
|
<h3>Kernel</h3>
|
|
<ul>
|
|
<li><a href="#p-camlocking">CAM layer locking</a></li>
|
|
<li><a href="#p-cpuusage">CPU usage display in top</a></li>
|
|
<li><a href="#p-docsysctl">Document all sysctls</a></li>
|
|
<li><a href="#p-docsound">Document the sound subsystem</a></li>
|
|
<li><a href="#p-dtrace">DTrace</a></li>
|
|
<li><a href="#p-assembler">DWARF2 call frame information</a></li>
|
|
<li><a href="#p-modrefcnt">Dynamic module references</a></li>
|
|
<li><a href="#p-ktrace">Extend ktrace/kdump output</a></li>
|
|
<li><a href="#p-fastcall">Fast syscall support for FreeBSD/i386</a></li>
|
|
<li><a href="#p-memcpy">FPU subsystem overhaul</a></li>
|
|
<li><a href="#p-geninput">Generic input device layer</a></li>
|
|
<li><a href="#p-powerd">Implement and profile algorithms for powerd</a></li>
|
|
<li><a href="#p-iscsi">iSCSI</a></li>
|
|
<li><a href="#p-amd64linux">Linuxulator with native amd64 support</a></li>
|
|
<li><a href="#p-busalloc">New bus_alloc_resources() API.</a></li>
|
|
<li><a href="#p-pcihotplug">PCI-Hotplug support</a></li>
|
|
<li><a href="#p-psched">Pluggable Disk Scheduler</a></li>
|
|
<li><a href="#p-processcheck">Process checkpointing</a></li>
|
|
<li><a href="#p-trussprocfs">Remove procfs dependencies</a></li>
|
|
<li><a href="#p-syncer">Rewrite the in-kernel file system syncer</a></li>
|
|
<li><a href="#p-suspend">Suspend to disk</a></li>
|
|
<li><a href="#p-bootcode">Sync FreeBSD i386 boot code with DragonFly</a></li>
|
|
<li><a href="#p-sysmod">Syscons modularization</a></li>
|
|
<li><a href="#p-updatelinux">Update the Linuxulator</a></li>
|
|
</ul>
|
|
|
|
<h3>Networking</h3>
|
|
<ul>
|
|
<li><a href="#p-csup">csup improvements</a></li>
|
|
<li><a href="#p-flightmode">Flight mode for the loader</a></li>
|
|
<li><a href="#p-httppxe">HTTP support for pxeboot</a></li>
|
|
<li><a href="#p-iapp">IAPP preauthentication in hostapd</a></li>
|
|
<li><a href="#p-nfslockdsemantics">NFS Lockd (improve semantics)</a></li>
|
|
<li><a href="#p-nfslockdkernel">NFS Lockd (kernel implementation)</a></li>
|
|
<li><a href="#p-suptundaemon">Super tunnel daemon</a></li>
|
|
<li><a href="#p-tcpipreg">TCP/IP regression test suite</a></li>
|
|
<li><a href="#p-wi">Update wi</a></li>
|
|
<li><a href="#p-wpa2preauth">WPA2 preauthentication in hostapd</a></li>
|
|
<li><a href="#p-zeroconf">Zeroconf</a></li>
|
|
</ul>
|
|
|
|
<h3>Ports</h3>
|
|
<ul>
|
|
<li><a href="#p-ports-uid">Automatic registering of UID and GID</a></li>
|
|
<li><a href="#p-ports-cleanup-use">Cleanup of USE and WITH variables</a></li>
|
|
<li><a href="#p-ports-comp43tty">COMPAT_43TTY</a></li>
|
|
<li><a href="#p-ports-options">Improvements of OPTIONS</a></li>
|
|
<li><a href="#p-ports-pkgtools">Package tools improvements</a></li>
|
|
</ul>
|
|
|
|
<h3>Security</h3>
|
|
<ul>
|
|
<li><a href="#p-distribaudit">Distributed audit daemon</a></li>
|
|
</ul>
|
|
|
|
<h3>Userland / Installation Tools</h3>
|
|
<ul>
|
|
<li><a href="#p-bsdelftools">BSD-licensed ELF Tools</a></li>
|
|
<li><a href="#p-noswitches">Build options improvements</a></li>
|
|
<li><a href="#p-impnssldap">Import NSS LDAP</a></li>
|
|
<li><a href="#p-libprocnet">Libprocstat and libnetstat</a></li>
|
|
<li><a href="#p-hesiodlibc">Move HESIOD to a NSS module</a></li>
|
|
<li><a href="#p-nisyplibc">Move NIS/YP to a NSS module</a></li>
|
|
<li><a href="#p-multibyte">Multibyte collation support</a></li>
|
|
<li><a href="#p-ndmp">NDMP data server</a></li>
|
|
<li><a href="#p-performancetracking">Performance tracking</a></li>
|
|
<li><a href="#p-libumem">Port libumem to FreeBSD</a></li>
|
|
<li><a href="#p-pxeinstaller">PXE Installer</a></li>
|
|
<li><a href="#p-regression">Regression testing system</a></li>
|
|
<li><a href="#p-sysinstall">Sysinstall</a></li>
|
|
<li><a href="#p-taroutmode">Tar output mode for installworld</a></li>
|
|
<li><a href="#p-vi-utf8">Unicode support in vi</a></li>
|
|
</ul>
|
|
|
|
<h3>Additional Information</h3>
|
|
<ul>
|
|
<li><a href="#p-projects">Projects at FreeBSD.org</a></li>
|
|
<li><a href="#p-tc">Technical contacts</a></li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<!------------------------------------------------------------------>
|
|
<!- File System ->
|
|
<!------------------------------------------------------------------>
|
|
|
|
<a name="p-autofs"></a>
|
|
<h2>AutoFS</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:alfred@FreeBSD.org">&a.alfred;</a></p>
|
|
<p>Create the autofs file system from a specification.
|
|
Kernel transport and interaction with the "amd" automounter
|
|
needs to be completed.</p>
|
|
<p><a href="mailto:adamartin@FreeBSD.org">Adam Martin</a> did work
|
|
on AutoFS for FreeBSD as part of Google Summer of Code 2006. It
|
|
is not yet ready for prime time, but he is working on getting it
|
|
commit ready.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Knowledge of file systems and network file systems.</li>
|
|
<li>Good knowledge of C.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-magicsymlinks"></a>
|
|
<h2>Magic Symlinks</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:jwd@FreeBSD.org">&a.jwd;</a></p>
|
|
<p><strong>Patches</strong>: <a
|
|
href="http://people.FreeBSD.org/~jwd/magiclinks.tgz">http://people.FreeBSD.org/~jwd/magiclinks.tgz</a></p>
|
|
<p>Experimental patches exist against 4-STABLE, though the DragonFly
|
|
implementation using the setvar utility should be examined (interesting
|
|
files in the DragonFly CVS: sys/kern/init_sysent.c, sys/kern/kern_varsym.c,
|
|
sys/kern/syscalls.c, sys/kern/syscalls.master, sys/kern/vfs_lookup.c,
|
|
sys/sys/syscall-hide.h, sys/sys/syscall.h, sys/sys/syscall.mk,
|
|
sys/sys/sysproto.h, sys/sys/sysunion.h, bin/varsym/varsym.1,
|
|
bin/varsym/varsym.c).</p>
|
|
<p><a href="mailto:bu7cher@yandex.ru">Andrey V. Elsukov</a> has begun porting
|
|
this to FreeBSD, and some initial patches for CURRENT can be found <a
|
|
href="http://butcher.heavennet.ru/patches/kernel/varsym/">here</a> and <a
|
|
href="http://butcher.heavennet.ru/patches/kernel/magiclinks/">here</a>.
|
|
</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>Some file system knowledge.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-mdfs"></a>
|
|
<h2>MDFS lockups</h2>
|
|
<p>Fix MDFS lockups when using async operation modes. <a
|
|
href="&cgibase;/cvsweb.cgi/sys/dev/md/md.c#rev1.115">Revision 1.115 of
|
|
md.c</a> has a discussion of the problem.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>Knowledge of the VFS and VMA subsystems.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-tarfs"></a>
|
|
<h2>Tarfs</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:rwatson@FreeBSD.org">&a.rwatson;</a></p>
|
|
<p>Implement a simple read-only &man.tar.1; file system that could be used as
|
|
a root file system for network booting, etc. Right now, we mount UFS from an
|
|
mdimage, but using &man.tar.1; images avoids having to build UFS images with
|
|
memory disks etc.</p>
|
|
<p><a href="mailto:">Eric Anderson</a> has a working version. He is finishing
|
|
up some bug testing/fixing and a few features.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Strong knowledge of file systems.</li>
|
|
<li>Good knowledge of &man.tar.1;.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-tmpfs"></a>
|
|
<h2>TMPFS</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:netchild@FreeBSD.org">&a.netchild;</a></p>
|
|
<p>At the moment FreeBSD includes a memory-based file system called mfs.
|
|
mfs is just an implementation of the regular ffs - designed for
|
|
persistent storage - on top of the (volatile) virtual memory system.
|
|
This means that it uses the same data structures as the on-disk
|
|
implementation, rendering less than optimal performance and memory
|
|
usage. With tmpfs, FreeBSD would gain a memory file system which uses
|
|
less memory and is faster.</p>
|
|
<p><strong>Goals</strong>:</p>
|
|
<ul>
|
|
<li>Port the tmpfs file system.</li>
|
|
<li>Adopt the documentation (including the file system how-to)</li>
|
|
</ul>
|
|
<p><a href="mailto:rohitj@purpe.com">Rohit Jalan</a> has begun <a
|
|
href="http://lists.freebsd.org/pipermail/freebsd-hackers/2006-February/015575.html">porting</a>
|
|
the NetBSD tmpfs to FreeBSD. The source and some benchmarks can be found
|
|
<a href="http://download.purpe.com/tmpfs">here</a>. Before it can enter the
|
|
tree locking has to be added. There are also <a
|
|
href="http://www.Leidinger.net/FreeBSD/tmpfs_bugs.mails">some bugs</a> to take
|
|
care of. Rohit has no time to work on it in the next months, any volunteer is
|
|
welcome to continue his work.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>A little bit of knowledge of the VFS subsystem.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-extenddump"></a>
|
|
<h2>Extend UFS2 dump/restore support for UFS2</h2>
|
|
<p>The UFS2 file system in FreeBSD supports extended attributes. Extended
|
|
attributes are meta-data associated with vnodes representing files and
|
|
directories. Unfortunately dump and restore do not backup or restore
|
|
such attributes. People interested in this should contact <a
|
|
href="mailto:mckusick@FreeBSD.org">&a.mckusick;</a>.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Knowledge of C programming.</li>
|
|
<li>Basic understanding of backup/restore procedures.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-zfs"></a>
|
|
<h2>ZFS</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:pjd@FreeBSD.org">&a.pjd;</a></p>
|
|
<p><strong>References</strong>: <a
|
|
href="http://www.opensolaris.org/os/community/zfs/whatis/">What is ZFS?</a>,
|
|
<a
|
|
href="http://www.opensolaris.org/os/community/zfs/porting/">Porting
|
|
ZFS</a><p>
|
|
<p>OpenSolaris™ gained support for a new file system called ZFS (Zettabyte
|
|
File System) as of build 27a. ZFS is a new approach to file
|
|
system design and data management, and includes several interesting features
|
|
such as transactional semantics, snapshots and good scalability. Porting ZFS
|
|
to FreeBSD is highly encouraged, but should be considered a difficult
|
|
task since the current implementation of ZFS is very
|
|
Solaris-specific. &a.pjd; has <a
|
|
href="http://lists.freebsd.org/pipermail/freebsd-current/2006-August/065306.html">started</a>
|
|
<a
|
|
href="http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/user/pjd/zfs">porting</a>
|
|
ZFS to FreeBSD.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Strong C knowledge.</li>
|
|
<li>Strong knowledge about file systems.</li>
|
|
<li>Knowledge about the FreeBSD VFS subsystem.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<!------------------------------------------------------------------>
|
|
<!- Kernel ->
|
|
<!------------------------------------------------------------------>
|
|
|
|
<a name="p-camlocking"></a>
|
|
<h2>CAM layer locking</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:scottl@FreeBSD.org">&a.scottl;</a></p>
|
|
<p>&a.scottl; has been working on this for a while, and he has patches in
|
|
Perforce.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>Knowledge about SCSI.</li>
|
|
<li>A good understanding of the FreeBSD locking methods.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-cpuusage"></a>
|
|
<h2>CPU usage display in top</h2>
|
|
<p>The current kernel statistics do not know how to calculate the CPU usage
|
|
of threaded processes. A volunteer has to understand the current statistics
|
|
model, design a new statistics model and implement it. This problem only
|
|
occurs with M:N threading on libpthread.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>A good understanding of the FreeBSD SMP system.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-docsysctl"></a>
|
|
<h2>Document all sysctls</h2>
|
|
<p><strong>Technical contacts</strong>: <a
|
|
href="mailto:mat@FreeBSD.org">&a.mat;</a>, <a
|
|
href="mailto:brd@FreeBSD.org">&a.brd;</a></p>
|
|
<p>The sysctl(8) utility retrieves kernel states and allows processes with
|
|
appropriate privilege to change kernel states. On request it is able to
|
|
display description lines which document the kernel state. Unfortunately
|
|
not every sysctl is documented. This task is possible to share with other
|
|
volunteers. &a.mat has done some development in Perforce, in the
|
|
mat_sysctl_cleanup branch.</p>
|
|
<ul>
|
|
<li>Find every undocumented sysctl in the kernel.</li>
|
|
<li>Try to determine what this sysctl is for and document it.</li>
|
|
</ul>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-docsound"></a>
|
|
<h2>Document the sound subsystem</h2>
|
|
<p><strong>Technical contacts</strong>: <a
|
|
href="mailto:netchild@FreeBSD.org">&a.netchild;</a>, <a
|
|
href="mailto:ariff@FreeBSD.org">&a.ariff;</a></p>
|
|
<ul>
|
|
<li>Add sound subsystem related section 9 manual pages, so far no sound
|
|
subsystem related manual pages exists.</li>
|
|
<li>Add an example driver in share/examples which allows to write a new
|
|
driver. For this purpose the example driver should contain enough
|
|
documentation as comments and/or pointers to documentation in man-section
|
|
9. This work can be based upon <a
|
|
href="http://people.FreeBSD.org/~cg/template.c">this template.</a></li>
|
|
<li>Rewrite the sound subsystem chapter in the FreeBSD Architecture Handbook.
|
|
The rewrite should contain an overview of the available parts in the sound
|
|
subsystem and how they interact (data flow, dependencies, ...) and fit
|
|
together. Additionally it should contain links to already available
|
|
documentation (official standards, section 9 manual pages, ...).</li>
|
|
<li>A <a href="http://wiki.freebsd.org/soundsystem">wiki page</a>
|
|
documenting everything related to the sound subsystem in FreeBSD has been
|
|
created.</li>
|
|
</ul>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Documentation writing skills.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-dtrace"></a>
|
|
<h2>DTrace</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:jb@FreeBSD.org">John Birrell</a></p>
|
|
<p><strong>URL</strong>: <a
|
|
href="http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/projects/dtrace">Perforce
|
|
repository</a>, <a
|
|
href="http://people.freebsd.org/~jb/dtrace/index.html">DTrace for
|
|
FreeBSD</a></p>
|
|
<p>DTrace is a dynamic tracing facility designed by Sun Microsystems and
|
|
released in Solaris 10. They have since released the major part of
|
|
Solaris under the banner of OpenSolaris and the Common Development and
|
|
Distribution License (CDDL) 1.0.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>A good understanding of the FreeBSD kernel.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-assembler"></a>
|
|
<h2>DWARF2 call frame information</h2>
|
|
<p>A debug kernel is not able to show stack traces with cross exceptions
|
|
anymore. This is because we do not emit any dwarf2 call frame information
|
|
for any assembler code, since gdb switched to the dwarf2 format. A volunteer
|
|
should annotate every assembler file [*.[sS]] with dwarf2 call frame
|
|
information.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Knowledge of assembly code.</li>
|
|
<li>Knowledge of ".cfi_*" pseudo-ops to insert dwarf2 frame descriptors.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-modrefcnt"></a>
|
|
<h2>Dynamic module references</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:sam@FreeBSD.org">&a.sam;</a></p>
|
|
<p>Kernel modules may have dynamic references created during operation.
|
|
For example net80211 key entries reference functions in the crypto module
|
|
that implements the key's cipher. Presently there is no standard mechanism
|
|
for expressing this dependency so that module unloading is disallowed;
|
|
instead modules must track references and implement their own semantics.
|
|
This task is to define and implement a general mechanism for tracking
|
|
these references and use them in handling module unload requests.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Good knowledge of C.</li>
|
|
<li>Kernel awareness.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-ktrace"></a>
|
|
<h2>Extend ktrace/kdump output</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:netchild@FreeBSD.org">&a.netchild;</a></p>
|
|
<p>The ktrace(1) facility allows to monitor what running processes do. It
|
|
allows to determine if a process is stuck or if it still does useful work.
|
|
The goal of this item is to look at the kernel interfaces, add missing
|
|
"pieces" (e.g. syscall's) to the ktrace output and to extend the output
|
|
with "decoded" (translating hex/dec values into human readable
|
|
information, e.g. O_RDONLY in the case of open(2)) information. Some work
|
|
has been completed and committed, but a few parts still remains. More
|
|
information is available <a
|
|
href="http://lists.freebsd.org/pipermail/freebsd-arch/2006-April/005107.html">here</a>.</p>
|
|
<p>Also, a related project would be to modify ktrace to write to pipes.
|
|
Currently the ktrace infrastructure requires the dump output go to a file.
|
|
It would be useful to be able to instead have it write to pipe, or in fact
|
|
any type of file descriptor.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Knowledge of C.</li>
|
|
<li>Good knowledge of POSIX interfaces or how to use man(1).</li>
|
|
<li>No fear to look into the kernel sources.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-fastcall"></a>
|
|
<h2>Fast syscall support for FreeBSD/i386</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:rookie@gufi.org">Attilio Rao</a></p>
|
|
<p>The instruction pair sysenter and sysexit can contribute to certain
|
|
performance improvements when a syscall is made on IA32. There is however
|
|
no implementation of this available for FreeBSD, so a volunteer
|
|
would have to add sysenter/sysexit support to the kernel. This
|
|
needs to be properly evaluated and benchmarked though, so a complete
|
|
implementation should therefore also contain informative benchmarks which
|
|
shows a clear improvement in performance. It is also important to stress
|
|
the fact that this project is of research quality and measures should be
|
|
taken to ensure that no regressions are introduced. Another interesting
|
|
extension to this project would be to investigate and evaluate the
|
|
possibility to use mmx/xmm registers to gather syscalls arguments.
|
|
<a href="davidxu@FreeBSD.org">&a.davidxu;</a> has some <a
|
|
href="http://lists.freebsd.org/pipermail/freebsd-current/2006-July/064403.html">work
|
|
in progress</a> in his <a
|
|
href="http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/user/davidxu/sysenter">sysenter</a>
|
|
branch in the perforce repository.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>Ability to write and understand x86 assembly.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-memcpy"></a>
|
|
<h2>FPU subsystem overhaul</h2>
|
|
<p>Port DragonFly's MMX/XMM optimized memcpy/bcopy/bzero/copyin/copyout code
|
|
(this includes an FPU subsystem overhaul). Interesting files in the
|
|
DragonFly CVS are sys/i386/gnu/fpemul/fpu_system.h,
|
|
sys/i386/i386/bcopy.s, sys/i386/i386/genassym.c, sys/i386/i386/globals.s,
|
|
sys/i386/i386/machdep.c, sys/i386/i386/math_emu.h,
|
|
sys/i386/i386/mp_machdep.c, sys/i386/i386/pmap.c, sys/i386/i386/support.s,
|
|
sys/i386/i386/swtch.s, sys/i386/i386/trap.c, sys/i386/i386/vm86bios.s,
|
|
sys/i386/i386/vm_machdep.c, sys/i386/include/asmacros.h,
|
|
sys/i386/include/globaldata.h, sys/i386/include/md_var.h,
|
|
sys/i386/include/npx.h, sys/i386/include/pcb.h, sys/i386/include/thread.h
|
|
sys/i386/isa/npx.c, sys/i386/i386/bcopy.s and sys/i386/i386/bzero.s. A more
|
|
detailed writeup can be found in <a
|
|
href="http://www.leidinger.net/FreeBSD/dfly_fpu.txt.bz2">this compressed
|
|
file</a>. This includes a mail from Matthew Dillon with suggestions on how
|
|
to do this in FreeBSD (including a small benchmark which shows 35%-55% speed
|
|
improvement for at least those benchmarks).</p>
|
|
<p><a href="mailto:rookie@gufi.org">Attilio Rao</a> has almost <a
|
|
href="http://lists.freebsd.org/pipermail/freebsd-hackers/2006-May/016702.html">completed</a>
|
|
this work, but he would like to receive more feedback.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>Knowledge of at least i386/MMX/XMM assembly.</li>
|
|
<li>A good understanding of the FreeBSD SMP system.</li>
|
|
<li>Roughly 6 weeks of free time.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-geninput"></a>
|
|
<h2>Generic input device layer</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:philip@FreeBSD.org">&a.philip;</a></p>
|
|
<p>The kernel is lacking a generic input device layer analogous to the Linux
|
|
'input core' layer. Having such a layer would make it easy to write e.g.
|
|
touchscreen support (&a.philip; has some work-in-progress regarding pointer
|
|
devices and touchscreen support, but not enough time to also cover keyboard
|
|
support or other generic features).</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-powerd"></a>
|
|
<h2>Implement and profile algorithms for powerd</h2>
|
|
<p><strong>Technical contacts</strong>: <a
|
|
href="mailto:njl@FreeBSD.org">&a.njl;</a>, <a
|
|
href="mailto:bruno@FreeBSD.org">&a.bruno;</a></p>
|
|
<p>Implement a range of predictive algorithms (and perhaps design your own)
|
|
and profile them for power usage and performance loss. The best
|
|
algorithm will save the most power while losing the least performance. This
|
|
has been discussed on the <a href="mailto:acpi@FreeBSD.org">ACPI</a> mailing
|
|
list and &a.bruno; has some early patches.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Basic C knowledge.</li>
|
|
<li>Laptop supported by cpufreq(4).</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-iscsi"></a>
|
|
<h2>iSCSI</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:danny@cs.huji.ac.il">Danny Braniss</a></p>
|
|
<p>Danny Braniss has been working on an iSCSI stack for FreeBSD for some time
|
|
now. His work is in Perforce, and he has posted several patch sets
|
|
and had numerous discussions on the mailing lists.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>Knowledge about (i)SCSI/CAM.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-amd64linux"></a>
|
|
<h2>Linuxulator with native amd64 support</h2>
|
|
<p>FreeBSD provides Linux binary compatibility through a Linux system call
|
|
table that is invoked when Linux ELF binaries are executed. The
|
|
implementation on amd64 machines only provides support for 32bit (x86)
|
|
executables. This needs to be coordinated with the <a
|
|
href="mailto:emulation@FreeBSD.org">emulation mailinglist</a> regarding
|
|
the userland part of the linuxulator.</p>
|
|
<ul>
|
|
<li>Determine a way how to distinguish between 32 bit and 64 bit applications
|
|
when entering a system call.</li>
|
|
<li>Design and implement 64 bit support while keeping 32 bit support.</li>
|
|
</ul>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>A good understanding of how to do a clean room implementation of GPL'ed
|
|
code (no copy & paste!).</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-busalloc"></a>
|
|
<h2>New bus_alloc_resources() API</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:imp@FreeBSD.org">&a.imp;</a></p>
|
|
<p>Recently, bus_alloc_resources has been added to the kernel. This,
|
|
coupled with the bus_space_{read,write} family of functions can
|
|
significantly reduce the setup needed for driver resource allocation.
|
|
Unfortunately, most of the drivers in the tree have not yet been
|
|
converted, thus ensuring that the old, bad way continues. What is needed
|
|
is for someone to go through the drivers in the tree and convert them.
|
|
After conversion, they need to ensure that they still work on at least some
|
|
hardware and work with someone to get them committed. <a
|
|
href="mailto:imp@FreeBSD.org">&a.imp;</a> is available for review and
|
|
coordination of committing.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read, write and understand C code.</li>
|
|
<li>Knowledge about device drivers.</li>
|
|
<li>Access to hardware to test on.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-pcihotplug"></a>
|
|
<h2>PCI-Hotplug support</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:bms@FreeBSD.org">&a.bms;</a></p>
|
|
<p><!-- Description needed --></p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>A good understanding of low-level access of the hardware.</li>
|
|
<li>A good understanding of FreeBSD device drivers.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-psched"></a>
|
|
<h2>Pluggable Disk Scheduler</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:s223560@studenti.ing.unipi.it">Emiliano Mennucci</a></p>
|
|
<p><strong>References</strong>: <a
|
|
href="http://wiki.freebsd.org/moin.cgi/Hybrid">The Pluggable Disk
|
|
Schedulers SoC project</a>, <a
|
|
href="http://www.happyemi.org/hybrid/">Patches</a></p>
|
|
<p>Our "Pluggable Disk Schedulers" SoC 2005 project resulted in code which
|
|
solved the problem where large sequential I/O requests, or certain
|
|
access patterns from one or a few processes, might almost completely
|
|
starve other processes. It is available as a patch for RELENG_4 and
|
|
RELENG_5. Unfortunately the code in FreeBSD-current (and RELENG_6)
|
|
changed too much, so that the patches can not be committed. The goal
|
|
of this project is to port the pluggable disk schedulers to the GEOM
|
|
framework.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>Knowledge of GEOM (or interest in getting familiar with it).</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-processcheck"></a>
|
|
<h2>Process checkpointing</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:bruno@FreeBSD.org">&a.bruno;</a></p>
|
|
<p>Process checkpointing allows to migrate some processes to other machines or
|
|
to let some processes "survive" a reboot (subject to some constraints).
|
|
Interesting files in the DragonFly CVS repository are sys/sys/ckpt.h,
|
|
sys/checkpt/* and sys/kern/imgact_elf.c.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-trussprocfs"></a>
|
|
<h2>Remove procfs dependencies</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:mux@FreeBSD.org">&a.mux;</a></p>
|
|
<p>Someone needs to finish the support for PT_SYSCALL in the ptrace()
|
|
subsystem, and add support for another ptrace() command that will replace
|
|
the PIOCWAIT and PIOCSTATUS ioctls of procfs (should probably be named
|
|
PT_WAIT), in order for truss(1) to be able to work without procfs(5).
|
|
Removing the procfs(5) dependency from ps -e is also desirable.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>C knowledge.</li>
|
|
<li>Understanding of kernel debugging interfaces.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-syncer"></a>
|
|
<h2>Rewrite the in-kernel file system syncer</h2>
|
|
<p><strong>References</strong>: <a
|
|
href="http://lists.freebsd.org/mailman/htdig/freebsd-arch/2005-March/003594.html">mail
|
|
#1</a>, <a
|
|
href="http://lists.freebsd.org/mailman/htdig/freebsd-performance/2005-February/001083.html">mail
|
|
#2</a></p>
|
|
<p><strong>Goals</strong>:</p>
|
|
<ul>
|
|
<li>Change the syncer so it can sync out to multiple physical devices
|
|
simultaneously.</li>
|
|
<li>Only write out up to X megabytes of data, remember where it
|
|
left off, and then proceed to the next dirty file (OpenBSD and
|
|
NetBSD already do this).</li>
|
|
<li>Replace the write_behind code with something (detect the existence
|
|
of a large amount of sequential dirty data and kick another thread
|
|
to flush it out synchronously, instead of doing it itself
|
|
asynchronously) integrated into the syncer (the data set size could
|
|
perhaps be increased from 64KB to 1MB).</li>
|
|
</ul>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>Some understanding of the VM system / buffer cache.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-suspend"></a>
|
|
<h2>Suspend to disk</h2>
|
|
<p><strong>Technical contacts</strong>: <a
|
|
href="mailto:njl@FreeBSD.org">&a.njl;</a>, <a
|
|
href="mailto:bruno@FreeBSD.org">&a.bruno;</a></p>
|
|
<p>Implement a suspend/resume from disk mechanism. Possibly use the dump
|
|
functions to dump pages to disk, then use ACPI to put the system in S4 or
|
|
power-off. Resume would require changes to the loader to load the memory
|
|
image directly and then begin executing again.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Good knowledge of C.</li>
|
|
<li>Understanding of the hardware/software interface.</li>
|
|
<li>A laptop that works with ACPI.</li>
|
|
<li>Kernel awareness.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-bootcode"></a>
|
|
<h2>Sync FreeBSD i386 boot code with DragonFly</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:jhb@FreeBSD.org">&a.jhb;</a></p>
|
|
<p>DragonFly invested a lot of time to clean up and document it. Additionally
|
|
they fixed some bugs. Interesting files in the DragonFly CVS are
|
|
sys/boot/i386/bootasm.h, sys/boot/i386/bootasmdef.c, sys/boot/boot0/*,
|
|
sys/boot/boot2/*, sys/boot/i386/btx/*, sys/boot/i386/cdboot/*,
|
|
sys/boot/i386/libi386/amd64_tramp.S, sys/boot/i386/libi386/biosdisk.c and
|
|
sys/boot/i386/loader/main.c. An interested volunteer has to compare and
|
|
evaluate both implementations and port interesting/good parts.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>Knowledge of i386 assembly.</li>
|
|
<li>Knowledge of BIOS interfaces.</li>
|
|
<li>Knowledge of low-level boot behavior.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-sysmod"></a>
|
|
<h2>Syscons modularization</h2>
|
|
<p>Separate the syscons code into distinct parts for input, output,
|
|
console handling (switching, screen savers etc.) and terminal
|
|
emulation. Also implement vt100 and vt220 emulation to supplement
|
|
the existing SCO emulation. Add a gettytab(5) capability for
|
|
specifying the terminal emulation, and add entries to /etc/gettytab
|
|
for the alternative emulations.</p>
|
|
<p>Optionally implement xterm emulation. The top line of the screen
|
|
should serve as a title bar, displaying the title set with the \e]0;
|
|
escape sequence as well as the vty number.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>A good understanding of text terminals and terminal emulation.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-updatelinux"></a>
|
|
<h2>Update the Linuxulator</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:emulation@FreeBSD.org">Emulation mailing list</a>, <a
|
|
href="mailto:netchild@FreeBSD.org">&a.netchild;</a>, <a
|
|
href="mailto:rdivacky@FreeBSD.org">Roman Divacky</a></p>
|
|
<p>FreeBSD provides Linux binary compatibility through a Linux system call
|
|
table that is invoked when Linux ELF binaries are executed. This
|
|
implementation should be compared with an up-to-date Linux kernel so that
|
|
important missing syscalls can be added to ensure that all mainstream
|
|
applications continue to work on FreeBSD. More information about the current
|
|
status can be obtained from the <a
|
|
href="http://wiki.freebsd.org/linux-kernel">wiki page</a>.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
<li>Ability to closely observe system call tracing to spot subtle differences
|
|
in the behavior of certain calls.</li>
|
|
<li>A good understanding of how to do a clean room implementation of GPL'ed
|
|
code (no copy & paste!).</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<!------------------------------------------------------------------>
|
|
<!- Networking ->
|
|
<!------------------------------------------------------------------>
|
|
|
|
<a name="p-csup"></a>
|
|
<h2>csup improvements</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:mux@FreeBSD.org">&a.mux;</a></p>
|
|
<p><strong>URL's</strong>: <a
|
|
href="http://mu.org/~mux/csup.html">csup homepage</a>, <a
|
|
href="http://www.freebsd.org/cgi/cvsweb.cgi/projects/csup/">CVSweb</a>
|
|
</p>
|
|
<p>&a.mux; is working on a rewrite of CVSup in C, called csup, and he has
|
|
imported csup into the FreeBSD base system. It should be ready for use in a
|
|
stable environment, but there are however still several missing features.
|
|
The following list should be a good starting point:</p>
|
|
<ul>
|
|
<li>Add support for authentication.</li>
|
|
<li>Add support for shell commands sent by the server.</li>
|
|
<li>Add missing support for various CVSup options: -D, -a (requires
|
|
authentication support), -e and -E (requires shell commands support)
|
|
and the destDir parameter.</li>
|
|
<li>Add support for CVS mode. This is important for developers, since this
|
|
mode sends the actual RCS files themselves. This is very useful
|
|
for storing a full copy of the CVS repository on the client machine.</li>
|
|
</ul>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Strong knowledge of C.</li>
|
|
<li>Good knowledge of POSIX standards.</li>
|
|
<li>Ability to work with multi-threaded applications.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-flightmode"></a>
|
|
<h2>Flight mode for the loader</h2>
|
|
<p>Not every airline allows to use radio transmitters like WLAN-NIC's in
|
|
airplanes (yet). The goal of this entry is to provide an entry in the
|
|
loader which prohibits drivers for devices which transmit radio signals
|
|
to attach to the device. One way of providing this functionality would
|
|
be to add a menu entry to the loader which sets a "flight mode" loader
|
|
tunable which would have to be queried by every driver which is able to
|
|
transmit radio signals to decide if the normal operation is allowed or
|
|
if the device has to be disabled. The loader-menu should be able to
|
|
detect this tunable in loader.conf and indicate which way of booting is
|
|
the current default (in case the user adds it there to be on the safe
|
|
side in the airplane).</p>
|
|
<p>Patches are available for testing <a
|
|
href="http://lists.freebsd.org/pipermail/freebsd-hackers/2006-July/017249.html">here</a>.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Knowledge of C (changing the drivers to respect the tunable).</li>
|
|
<li>Knowledge of forth (changing the loader-menu).</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-httppxe"></a>
|
|
<h2>HTTP support for pxeboot</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:rwatson@FreeBSD.org">&a.rwatson;</a></p>
|
|
<p>Implementing HTTP support for pxeboot would allow us to boot a machine using
|
|
PXE and pull down a kernel from a web server rather than NFS. This will
|
|
allow us to install from DHCPD + Apache or even just DHCPD + a remote web
|
|
server.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Good PXE knowledge.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-iapp"></a>
|
|
<h2>IAPP preauthentication in hostapd</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:sam@FreeBSD.org">&a.sam;</a></p>
|
|
<p>IAPP is the Inter-Access Point Protocol, a protocol by which
|
|
cooperating access points communicate about associated wireless
|
|
stations. FreeBSD lacks support for this aspect of the protocol in the
|
|
hostapd program used to construct a WPA-enabled access point. This task
|
|
would port the Linux code that exists to support IAPP in hostapd. This
|
|
mostly involves rewriting some user-mode multicast code and testing the
|
|
result.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Good knowledge of C.</li>
|
|
<li>Wireless networking fundamentals.</li>
|
|
<li>Wireless network setup.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-nfslockdsemantics"></a>
|
|
<h2>NFS Lockd (improve semantics)</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:alfred@FreeBSD.org">&a.alfred;</a></p>
|
|
<ul>
|
|
<li>Improve the semantics of the NFS lockd in FreeBSD. Apple has made
|
|
certain enhancements that can be leveraged in our code base.</li>
|
|
<li>Implement state recovery in the lockd.</li>
|
|
</ul>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Good knowledge of C.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-nfslockdkernel"></a>
|
|
<h2>NFS Lockd (kernel implementation)</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:alfred@FreeBSD.org">&a.alfred;</a></p>
|
|
<p>Moving the lockd implementation into the kernel provides several key
|
|
performance and semantic improvements.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Good knowledge of C.</li>
|
|
<li>Good understanding of NFS.</li>
|
|
<li>Good understanding of locking.</li>
|
|
<li>Good understanding of RPC.</li>
|
|
<li>Good understanding of kernel level networking.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-suptundaemon"></a>
|
|
<h2>Super tunnel daemon</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:phk@FreeBSD.org">&a.phk;</a></p>
|
|
<p>IP can be tunneled over IP, UDP, TCP, SSH, DNS, HTTP and many other
|
|
protocols, and this means that it is often possible to get a
|
|
connection out through a firewall, but each of these encapsulations
|
|
require prior setup of a specific program for each encapsulation, and
|
|
the user must experiment to decide which one to use at any one time.
|
|
The super tunnel daemon should implement pluggable encapsulations and
|
|
make it automatically select the most efficient encapsulation that
|
|
works at any one time. The user should not notice transitions from one
|
|
encapsulation to another, apart from maybe a small delay.</p>
|
|
<p>Wanted features (not sorted or prioritized):</p>
|
|
<ul>
|
|
<li>Autodetection of the environment (DHCP, DNS, routing, ...) in a
|
|
non-offensive way (no global portscans allowed; asking via DHCP,
|
|
zeroconf or similar technologies is ok) as far as possible.</li>
|
|
<li>Plugin architecture for easy addition of further encapsulations.</li>
|
|
<li>Failover from one encapsulation to another.</li>
|
|
<li>Distinct configuration files for encapsulations which need to be
|
|
configured (e.g. proxy, authentication, ...).</li>
|
|
<li>Possibility to disable installed encapsulations.</li>
|
|
<li>Print/log hints for protocols which require some configuration,
|
|
e.g. telling the user to use keys and perhaps the ssh-agent for ssh.</li>
|
|
<li>Configurable additional plugin directories (for plugins installed
|
|
via the ports collection).</li>
|
|
<li>Log how it is able to tunnel the traffic (this also makes it useful
|
|
for finding unwanted holes in the configuration of a firewall).</li>
|
|
</ul>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Good knowledge of C.</li>
|
|
<li>Good knowledge about networks.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-tcpipreg"></a>
|
|
<h2>TCP/IP regression test suite</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:rwatson@FreeBSD.org">&a.rwatson;</a></p>
|
|
<p>Design and implement a wire level regression test suite to exercise various
|
|
states in the TCP/IP protocol suite. Ideally with IPv4 and IPv6
|
|
support.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Strong TCP/IP knowledge.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-wi"></a>
|
|
<h2>Update wi</h2>
|
|
<p>Many new and useful features (e.g. crypto protocols like WPA) of the WLAN
|
|
infrastructure in the kernel are not used in &man.wi.4;. While &man.wi.4;
|
|
cards are old and can not compete with recent wireless cards, they are still
|
|
in use in a lot of places. The goal of this item is to examine the WLAN
|
|
infrastructure and other WLAN drivers in the tree for nice features and
|
|
port/use them in the &man.wi.4; driver.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Knowledge of C.</li>
|
|
<li>No fear of undocumented parts of the kernel.</li>
|
|
<li>One &man.wi.4; card and one other wireless device to test against.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-wpa2preauth"></a>
|
|
<h2>WPA2 preauthentication in hostapd</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:sam@FreeBSD.org">&a.sam;</a></p>
|
|
<p>WPA2 is the authentication protocol defined as part of the IEEE 802.11i
|
|
specification. This protocol is now commonly used to authenticate
|
|
wireless stations to access points. Part of this protocol is the
|
|
ability to pre-authenticate a station with one or more access points
|
|
so that roaming can happen quickly. FreeBSD lacks support for this
|
|
aspect of the protocol in the hostapd program used to construct a
|
|
WPA-enabled access point. This task would port the Linux code that
|
|
exists to support pre-authentication in hostapd. This mostly involves
|
|
rewriting some user-mode multicast code and testing the result.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Good knowledge of C.</li>
|
|
<li>Wireless networking fundamentals.</li>
|
|
<li>WPA-capable wireless network setup.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-zeroconf"></a>
|
|
<h2>Zeroconf</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:fli@shapeshifter.se">Fredrik Lindberg</a></p>
|
|
<p><strong>URL</strong>: <a
|
|
href="http://shapeshifter.se/projects/freebsd/zeroconfig/">Zeroconf on
|
|
FreeBSD</a> <a
|
|
href="http://netbsd-soc.sourceforge.net/projects/zeroconf/">NetBSD zeroconf
|
|
SoC project</a></p>
|
|
<p>Add Zeroconf (Rendezvous/Bonjour) support to FreeBSD.</p>
|
|
<ul>
|
|
<li>Find/write a suitable zeroconf implementation.</li>
|
|
<li>Add zeroconf support to the base system daemons.</li>
|
|
</ul>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Ability to read and understand foreign C code.</li>
|
|
<li>Ability to write C code.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<!------------------------------------------------------------------>
|
|
<!- Ports ->
|
|
<!------------------------------------------------------------------>
|
|
|
|
<a name="p-ports-uid"></a>
|
|
<h2>Automatic registering of UID and GID</h2>
|
|
<p>Some sort of mechanism for adding/removing users/groups automatically,
|
|
rather than using home-brew pkg-install scripts. It would need to be
|
|
a bit more sophisticated than only registering the UID/GID, to deal with
|
|
setting the other passwd(5) fields; a port might need more than
|
|
one user; some ports might want a specific ID, others just the next
|
|
available one, etc, etc.</p>
|
|
<p>Perhaps ports that have UIDs registered in the handbook could also
|
|
be registered in a file inside /usr/ports, which the framework would
|
|
use in UID creation requests.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Strong knowledge of shell and make code.</li>
|
|
<li>A basic understanding of the inner workings of the ports tree.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-ports-cleanup-use"></a>
|
|
<h2>Cleanup of USE and WITH variables</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:erwin@FreeBSD.org">&a.erwin;</a></p>
|
|
<p>Make these more consistent. WITH_* should be user-settable
|
|
variables while USE_* only is for internal use in the ports.</p>
|
|
<p><strong>Requirement</strong>:</p>
|
|
<ul>
|
|
<li>Strong knowledge of shell and make code.</li>
|
|
<li>A basic understanding of the inner workings of the ports tree.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-ports-comp43tty"></a>
|
|
<h2>COMPAT_43TTY</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:gbell72@rogers.com">Gardner Bell</a></p>
|
|
<p>Some ports may break when removing COMPAT_43TTY from the kernel
|
|
configuration since they assume old ioctl's when they identify
|
|
FreeBSD. The goal of this entry is to:</p>
|
|
<ul>
|
|
<li>Identify the ports which behave like this. A tinderbox setup is probably
|
|
needed. Using grep to find "#include <sgtty.h>" and this <a
|
|
href="http://lists.freebsd.org/pipermail/freebsd-current/2006-June/064010.html">list</a>
|
|
from &a.kris; might also be good starting points.</li>
|
|
<li>Fix breakages and send patches upstream.</li>
|
|
</ul>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Knowledge of autotools.</li>
|
|
<li>Time and patience.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-ports-options"></a>
|
|
<h2>Improvements of OPTIONS</h2>
|
|
<p>The current OPTIONS infrastructure can be improved in several ways.</p>
|
|
<ul>
|
|
<li>It should be possible to define OPTIONS after bsd.ports.pre.mk.</li>
|
|
<li>Add an API to override the current curses based interface with
|
|
a different GUI, e.g. zenity/gdialog instead of dialog.</li>
|
|
<li>More room for a description in the OPTIONS dialog - possibly some
|
|
sort of help dialog could be provided for each option, like in
|
|
sysinstall.</li>
|
|
<li>Better handling of cases where OPTIONS are changed/added/removed
|
|
between upgrades.</li>
|
|
<li>The ability to depend on, or at least test, OPTIONS set in other
|
|
ports. Possibly it would be nice to enforce setting variables that are
|
|
depended upon when the port is being installed as a dependency.</li>
|
|
<li>Other types of OPTIONS controls - A text box in particular would be
|
|
useful for entering variables that need real values.</li>
|
|
<li>The possibility for mutually exclusive OPTIONS.</li>
|
|
<li>Bugfixes:
|
|
<ul>
|
|
<li>If you attempt to run make config for a port with
|
|
${PKGNAMEPREFIX} defined, the make config process will error out
|
|
with:<br>
|
|
===> Using wrong configuration file /path/options/file<br>
|
|
The solution is to define LATEST_LINK to be prefix-${PORTNAME},
|
|
but this should be done internally.</li>
|
|
</ul></li>
|
|
</ul>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Strong knowledge of shell and make code.</li>
|
|
<li>A basic understanding of the inner workings of the ports tree.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-ports-pkgtools"></a>
|
|
<h2>Package tools improvements</h2>
|
|
<p>The pkg_* tools, which deal with the installation of pre-build binary package
|
|
of ports, could do with a code cleanup or maybe even a rewrite from
|
|
scratch. Some features of the ports tree are not supported by the pkg_* tools,
|
|
e.g. versioned dependencies.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Strong knowledge of C code.</li>
|
|
<li>A basic understanding of the inner workings of the ports tree.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<!------------------------------------------------------------------>
|
|
<!- Security ->
|
|
<!------------------------------------------------------------------>
|
|
|
|
<a name="p-distribaudit"></a>
|
|
<h2>Distributed audit daemon</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:rwatson@FreeBSD.org">&a.rwatson;</a></p>
|
|
<p>Create a tool that manages per-machine audit records and submits them to
|
|
a central site for processing and long-term archiving/management. Ideally
|
|
with support for SSL (or the like) so they do not travel on the wire in the
|
|
clear.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Knowledge of the audit subsystem.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<!------------------------------------------------------------------>
|
|
<!- Userland / Installation Tools ->
|
|
<!------------------------------------------------------------------>
|
|
|
|
<a name="p-bsdelftools"></a>
|
|
<h2>BSD-licensed ELF Tools</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:jkoshy@FreeBSD.org">&a.jkoshy;</a></p>
|
|
<p>Create BSD-licensed versions of ELF processing tools (e.g., <strong>nm</strong>
|
|
and <strong>strip</strong>) using the ELF(3) and GELF(3) API set in FreeBSD
|
|
-CURRENT.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Knowledge of C.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-noswitches"></a>
|
|
<h2>Build options improvements</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:netchild@FreeBSD.org">&a.netchild;</a>, <a href="mailto:gbell72@rogers.com">Gardner Bell</a></p>
|
|
<p>The new "delete-old" and "delete-old-libs" target in /usr/src for 6.1 and
|
|
-CURRENT should be extended to support the WITHOUT_* knobs, e.g.
|
|
WITHOUT_RESCUE or WITHOUT_CRYPT, and delete files which are covered by those
|
|
knobs. Some switches have already been <a
|
|
href="http://cvsweb.freebsd.org/src/tools/build/mk/OptionalObsoleteFiles.inc">covered</a>.
|
|
You can view a list of all switches and what effect they have <a
|
|
href="http://phk.freebsd.dk/misc/build_options/">here</a>.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Time to build and install the world several times.</li>
|
|
<li>A way to determine which files were not touched by an installworld.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-impnssldap"></a>
|
|
<h2>Import NSS LDAP</h2>
|
|
<p>Since LDAP is very popular today, it would be beneficial to have
|
|
NSS-LDAP support available by default. The license of the NSS
|
|
LDAP module should however be investigated first.</p>
|
|
<p><strong>Benefits</strong>:</p>
|
|
<ul>
|
|
<li>Better user management support in large scale environments out of
|
|
the box.</li>
|
|
<li>Better user management support in heterogeneous environments out of
|
|
the box.</li>
|
|
<li>Allows further work for better integration with Active Directory.</li>
|
|
<li>Allows further work to enhance the FreeBSD installation process
|
|
(guided configuration of the LDAP part).</li>
|
|
</ul>
|
|
<p><a href="mailto:bushman@FreeBSD.org">Michael Bushkov</a> is <a
|
|
href="http://wiki.freebsd.org/LdapCachedOriginalProposal">working</a> on
|
|
importing NSS LDAP as part of Google Summer of Code 2006.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Knowledge of C.</li>
|
|
<li>Knowledge of NSS and LDAP.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-libprocnet"></a>
|
|
<h2>Libprocstat and libnetstat</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:rwatson@FreeBSD.org">&a.rwatson;</a></p>
|
|
<p>Create, similar to libmemstat, wrapper libraries to support monitoring and
|
|
management applications to avoid direct use of kvm. Three parts to the
|
|
project: for each of the above, add kernel support to export data in a less
|
|
ABI-sensitive way using sysctl, write a library to present the information
|
|
in an extensible way to applications, and update applications to use the
|
|
library instead of reaching directly into kernel memory / consuming sysctls.
|
|
The goal is to allow the kernel implementation to change without breaking
|
|
applications and requiring them to be recompiled, and to allow monitoring
|
|
functions to be extended without breaking applications. This should also
|
|
facilitate writing new classes of monitoring and profiling tools.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Good knowledge of C.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-hesiodlibc"></a>
|
|
<h2>Move HESIOD to a NSS module</h2>
|
|
<p>Currently HESIOD is build statically into libc. Since LDAP is more
|
|
popular today, it is not necessary to provide this name service to
|
|
every consumer of libc by default.</p>
|
|
<p><strong>Benefits</strong>:</p>
|
|
<ul>
|
|
<li>Less code linked to every application.</li>
|
|
<li>Less complexity in libc.</li>
|
|
<li>More flexibility for system administrators.</li>
|
|
<li>More consistent use of subsystems (NSS).</li>
|
|
<li>Allows to slim down libc further by moving XDR, RPC and the DNS
|
|
code into a separate libraries (may depend upon the NIS/YP -> NSS
|
|
entry).</li>
|
|
</ul>
|
|
<p><a href="mailto:bushman@FreeBSD.org">Michael Bushkov</a> is <a
|
|
href="http://wiki.freebsd.org/LdapCachedOriginalProposal">working</a> on
|
|
moving HESIOD out of libc as part of Google Summer of Code 2006.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Knowledge of C.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-nisyplibc"></a>
|
|
<h2>Move NIS/YP to a NSS module</h2>
|
|
<p>Currently NIS/YP is build statically into libc. Since LDAP is more
|
|
popular today, it is not necessary to provide this name service to
|
|
every consumer of libc by default.</p>
|
|
<p><strong>Benefits</strong>:</p>
|
|
<ul>
|
|
<li>Less code linked to every application.</li>
|
|
<li>Less complexity in libc.</li>
|
|
<li>More flexibility for system administrators.</li>
|
|
<li>More consistent use of subsystems (NSS).</li>
|
|
<li>Allows to slim down libc further by moving XDR, RPC and the YP
|
|
code into a separate libraries (may depend upon the HESIOD -> NSS
|
|
entry).</li>
|
|
</ul>
|
|
<p><a href="mailto:bushman@FreeBSD.org">Michael Bushkov</a> is <a
|
|
href="http://wiki.freebsd.org/LdapCachedOriginalProposal">working</a> on
|
|
moving NIS/YP out of libc as part of Google Summer of Code 2006.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Knowledge of C.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-multibyte"></a>
|
|
<h2>Multibyte collation support</h2>
|
|
<p>Currently FreeBSD supports only single byte collation. Multibyte
|
|
collation support would be nice.</p>
|
|
<p><strong>Benefits</strong>:</p>
|
|
<ul>
|
|
<li>Proper national sorting in UTF-8 and other multibyte locales.</li>
|
|
</ul>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Knowledge of C.</li>
|
|
<li>Familiarity with locale subsystem and relevant ISO standards.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-ndmp"></a>
|
|
<h2>NDMP data server</h2>
|
|
<p><strong>URL</strong>: <a
|
|
href="http://www.ndmp.org/">The NDMP Initiative</a></p>
|
|
<p>The NDMP initiative was launched to create an open
|
|
standard protocol for network-based backup for network-attached storage.
|
|
Major commercial storage systems come with a compliant service. This allows
|
|
major commercial backup systems to backup such NAS devices. Including a NDMP
|
|
disk server into FreeBSD would allow to play nice out of the box (modulo some
|
|
configuring) regarding backups in a corporate environment.</p>
|
|
<ul>
|
|
<li>Evaluate the existing revisions of the NDMP standard.</li>
|
|
<li>Choose an appropriate revision (after checking of supported versions in
|
|
commercial backup systems).</li>
|
|
<li>Implement at least a NDMP data server.</li>
|
|
<li>Bonus: implement a NDMP tape server (to allow attached tapes to be
|
|
used).</li>
|
|
</ul>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Access to a commercial backup system with NDMP support
|
|
(mostly for interoperability testing; since a NDMPcopy
|
|
application seems to be available, this is not a hard requirement).</li>
|
|
<li>Good knowledge of a programming language which is included in
|
|
the base system.</li>
|
|
<li>Knowledge about UFS snapshots.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-performancetracking"></a>
|
|
<h2>Performance tracking</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:brooks@FreeBSD.org">&a.brooks;</a></p>
|
|
<p>The "performance tracking" entry is meant to monitor the
|
|
performance of FreeBSD itself over the development time, e.g. someone
|
|
makes a change to the kernel and the tracking system is able to show
|
|
the performance impact to various subsystems (microbenchmarks) or to
|
|
real world applications like apache or mysql (macrobenchmarks). The
|
|
tracking system should be able to do this with multiple machines and
|
|
multiple configurations (while the goal is not to compare
|
|
configurations or machines (but different FreeBSD versions) we would
|
|
not mind if it is also able to do this. This does not need to be
|
|
implemented from scratch, it is allowed/encouraged to reuse existing
|
|
free software.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Access to multiple machines.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-libumem"></a>
|
|
<h2>Port libumem to FreeBSD</h2>
|
|
<p>Solaris 9 and later versions include <code>libumem</code>, a user
|
|
space slab allocator that includes debugging features we may want to
|
|
have on FreeBSD too.</p>
|
|
<p>Online references for <code>libumem</code> are (in suggested reading
|
|
order):</p>
|
|
<ul>
|
|
<li>Robert Benson.
|
|
"<em>Identifying Memory Management Bugs Within Applications Using
|
|
the libumem Library</em>".
|
|
Technical article at
|
|
<a href="http://access1.sun.com/">Sun Developer Technical Support</a>.
|
|
<a href="http://access1.sun.com/techarticles/libumem.html">http://access1.sun.com/techarticles/libumem.html</a>.
|
|
2003.</li>
|
|
|
|
<li>Jeff Bonwick.
|
|
"<em>The Slab Allocator: An Object-Caching Kernel</em>".
|
|
USENIX Summer 1994 Technical Conference.
|
|
June 6-10, 1994.
|
|
<a href="http://www.usenix.org/publications/library/proceedings/bos94/bonwick.html">http://www.usenix.org/publications/library/proceedings/bos94/bonwick.html</a></li>
|
|
|
|
<li>John Adams and Jeff Bonwick.
|
|
"<em>Magazines and Vmem: Extending the Slab Allocator to Many CPUs
|
|
and Arbitrary Resources</em>".
|
|
<a href="http://www.usenix.org/event/usenix01/index.html">USENIX 2001</a>.
|
|
<a href="http://www.usenix.org/event/usenix01/bonwick.html">http://www.usenix.org/event/usenix01/bonwick.html</a></li>
|
|
</ul>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Good C knowledge (reading and writing).</li>
|
|
<li>Experience with debugging allocation problems.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-pxeinstaller"></a>
|
|
<h2>PXE Installer</h2>
|
|
<p>It would be great to have a bundled PXE installer. This would allow one to
|
|
boot an install server from a FreeSBIE live CD-ROM on one box, set the BIOS
|
|
on subsequent boxes to PXE boot, and then have the rest happen by magic.
|
|
This would be very helpful for installing cluster nodes, etc.</p>
|
|
<p><a href="mailto:m@FreeBSD.org">Markus Boelter</a> is <a
|
|
href="http://wiki.freebsd.org/MarkusBoelter">working</a> on a bundled
|
|
PXE installer as part of his BSDInstaller project withhin the Google Summer
|
|
of Code 2006. The PXE Installer is working but some non-PXE related issues
|
|
have to be solved before it can enter the tree.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Good PXE knowledge.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-regression"></a>
|
|
<h2>Regression testing system</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:netchild@FreeBSD.org">&a.netchild</a>, <a
|
|
href="mailto:nik@FreeBSD.org">&a.nik;</a></p>
|
|
<p>&a.nik; has written a regression test infrastructure using Perl. More of
|
|
the regression tests should be made to work with libtap.</p>
|
|
<ul>
|
|
<li>Many of the existing tests should be moved from using assert() to using
|
|
ok() and friends from libtap.</li>
|
|
<li>More regression tests should be written.</li>
|
|
</ul>
|
|
<p>Porting <a href="http://ltp.sf.net/">LTP</a> might also be a good idea.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Good knowledge of scripting languages (Perl preferred).</li>
|
|
<li>Good knowledge of software testing.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-sysinstall"></a>
|
|
<h2>Sysinstall</h2>
|
|
<ul>
|
|
<li>Ask for network configuration before install - so you do not have to
|
|
configure the net twice.</li>
|
|
<li>Make a guess of the timezone based upon country & keyboard.</li>
|
|
</ul>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Good C knowledge (reading and writing).</li>
|
|
<li>No fear regarding "naturally grown" code.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-taroutmode"></a>
|
|
<h2>Tar output mode for installworld</h2>
|
|
<p><strong>Technical contact</strong>: <a
|
|
href="mailto:rwatson@FreeBSD.org">&a.rwatson;</a></p>
|
|
<p>Instead of installing using install, mkdir, mtree, etc, directly construct
|
|
a tarball. This would allow creating install distributions without root
|
|
access, as setuid etc would never hit the local disk. This would require
|
|
some retrofitting of our installation mechanisms.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>No fear regarding our installation system.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<a name="p-vi-utf8"></a>
|
|
<h2>Unicode support in vi</h2>
|
|
<p>Many base system utilities grew multibyte support in 2004. It would be
|
|
nice to continue this trend by teaching &man.vi.1; to display and edit
|
|
documents in UTF-8 encoding.</p>
|
|
<p><strong>Requirements</strong>:</p>
|
|
<ul>
|
|
<li>Knowledge of C.</li>
|
|
</ul>
|
|
|
|
<hr>
|
|
|
|
<!------------------------------------------------------------------>
|
|
<!- Additional Information ->
|
|
<!------------------------------------------------------------------>
|
|
|
|
<a name="p-projects"></a>
|
|
<h2>Projects at FreeBSD.org</h2>
|
|
<p>Additional projects may be found by browsing the <a
|
|
href="../projects.html">FreeBSD Development Projects page</a>. The most
|
|
prominent projects are:</p>
|
|
<ul>
|
|
<li><a href="../acpi/index.html">The FreeBSD ACPI Project</a></li>
|
|
<li><a href="../c99/index.html">C99 & POSIX Conformance Project</a></li>
|
|
<li><a href="../bigdisk/index.html">Large data storage in FreeBSD
|
|
Project</a></li>
|
|
<li><a href="../netperf/index.html">Network Performance Project</a></li>
|
|
<li><a href="../busdma/index.html">busdma and SMPng driver conversion
|
|
Project</a></li>
|
|
</ul>
|
|
<p>Do not forget to have a look at the other projects too or by viewing some
|
|
of the recent <a href="&base;/news/status">Developer Status Reports.</a></p>
|
|
|
|
<hr>
|
|
|
|
<a name="p-tc"></a>
|
|
<h2>Technical contacts</h2>
|
|
<p>If you are interested in working on a project not explicitly
|
|
mentioned above, you may want to contact one of the potential
|
|
technical contacts below:</p>
|
|
<ul>
|
|
<li><strong>ACPI</strong>:
|
|
<a href="mailto:njl@FreeBSD.org">&a.njl;</a>
|
|
<a href="mailto:bruno@FreeBSD.og">&a.bruno;</a>.</li>
|
|
<li><strong>File systems</strong>:
|
|
<a href="mailto:scottl@FreeBSD.org">&a.scottl;</a>,
|
|
<a href="mailto:alfred@FreeBSD.org">&a.alfred;</a>.</li>
|
|
<li><strong>GEOM</strong>:
|
|
<a href="mailto:pjd@FreeBSD.org">&a.pjd;</a>,
|
|
<a href="mailto:phk@FreeBSD.org">&a.phk;</a>.</li>
|
|
<li><strong>Networking</strong>:
|
|
<a href="mailto:alfred@FreeBSD.org">&a.alfred;</a>,
|
|
<a href="mailto:brooks@FreeBSD.org">&a.brooks;</a>,
|
|
<a href="mailto:rwatson@FreeBSD.org">&a.rwatson;</a>,
|
|
<a href="mailto:sam@FreeBSD.org">&a.sam;</a>.</li>
|
|
<li><strong>Release Engineering / Integration</strong>:
|
|
<a href="mailto:re@FreeBSD.org">Release Engineering Team</a>.</li>
|
|
<li><strong>Sound</strong>:
|
|
<a href="mailto:ariff@FreeBSD.org">&a.ariff;</a>.</li>
|
|
<li><strong>TrustedBSD / Security</strong>:
|
|
<a href="mailto:rwatson@FreeBSD.org">&a.rwatson;</a>.</li>
|
|
</ul>
|
|
<p>Additionally, there are a lot of interesting <a
|
|
href="&base;/doc/en_US.ISO8859-1/books/handbook/eresources.html#ERESOURCES-MAIL">mailing
|
|
lists</a> that can be used when searching information about specific
|
|
subjects.</p>
|
|
|
|
<hr>
|
|
|
|
&footer;
|
|
</body>
|
|
</html>
|