Spring cleaning in preparation for Google SoC 2007. Remove the following

projects (based on discussions with netchild and rwatson):

- AutoFS: Adam Martin has been working on this since Google SoC 2006 and it
  looks like we will see an implementation announced soon.

- Magic symlinks: Several implementations exists, so we don't need more
  people looking at this right now.

- Tarfs: Eric Anderson is already working on this in p4.

- ZFS: No need to have this here, pjd has been hacking on ZFS for FreeBSD
  for quite some time now.

- Cam layer locking: My understanding is that scottl is about to commit
  his locking work to CVS soon.

- FPU subsystem overhaul: Not suitable as a Google SoC project.

- Linuxulator: We already have several committers (netchild, jkim, kib)
  and past SoC students (Roman Divacky) working on this, so remove it
  from the list.

- Process Checkpointing: Not suitable as a Google SoC project.

- Flight mode: Does not belong on the list.  benjsc has implemented
  this functionality (not yet committed though).

- Zeroconf: Already available on the Networking wiki page.

- NSS/LDAP/HESIOD/NIS/YP: Michael Bushkov did this as part of
  Google SoC 2006 so this isn't suitable for Google SoC 2007.  Not
  committed yet.

More to come...
This commit is contained in:
Joel Dahl 2007-02-16 17:12:32 +00:00
parent 3aed7b3751
commit e579a751bf
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=29578

View file

@ -1,6 +1,6 @@
<!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.84 2007/02/16 11:42:32 rwatson Exp $">
<!ENTITY date "$FreeBSD: www/en/projects/ideas/index.sgml,v 1.85 2007/02/16 11:56:01 rwatson Exp $">
<!ENTITY title "FreeBSD list of projects and ideas for volunteers">
<!ENTITY % navinclude.developers "INCLUDE">
<!ENTITY % developers SYSTEM "../../developers.sgml"> %developers;
@ -51,18 +51,13 @@
<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>
@ -71,27 +66,22 @@
<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>
@ -100,7 +90,6 @@
<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>
@ -124,10 +113,7 @@
<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>
@ -151,52 +137,6 @@
<!- 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
@ -211,24 +151,6 @@
<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
@ -277,53 +199,10 @@
<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&#153; 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. &a.pjd;
has <a
href="http://lists.freebsd.org/pipermail/freebsd-current/2006-August/065306.html">created</a>
a largely functional
<a
href="http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/user/pjd/zfs">work-in-progress port to FreeBSD</a>.</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
@ -503,40 +382,6 @@
<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. In particular, a
thorough performance evaluation is required to determine whether these
improvements are purely theoretical or practical</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
@ -588,29 +433,6 @@
<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
@ -674,23 +496,6 @@
<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; however, this implementation is
both highly experimental and incomplete.</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
@ -798,34 +603,6 @@
<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><a href="http://wiki.freebsd.org/RomanDivacky">Roman Divacky</a> had
a 2006 Summer of Code Project on this topic, and has continued his work
following the end of the summer project.</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 ->
<!------------------------------------------------------------------>
@ -861,29 +638,6 @@
<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
@ -1047,28 +801,6 @@
<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 ->
<!------------------------------------------------------------------>
@ -1325,32 +1057,6 @@ applications, and writing documentation.
<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
@ -1372,56 +1078,6 @@ applications, and writing documentation.
<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