diff --git a/en/projects/Makefile b/en/projects/Makefile index 14f15e5746..47a0078a1a 100644 --- a/en/projects/Makefile +++ b/en/projects/Makefile @@ -1,19 +1,19 @@ -# $FreeBSD: www/en/projects/Makefile,v 1.22 2005/04/18 11:47:07 phk Exp $ +# $FreeBSD: www/en/projects/Makefile,v 1.23 2005/06/01 20:59:16 murray Exp $ .if exists(../Makefile.conf) .include "../Makefile.conf" .endif .if exists(../Makefile.inc) .include "../Makefile.inc" .endif DOCS= projects.sgml DOCS+= newbies.sgml DOCS+= cvsweb.sgml DOCS+= summerofcode.sgml INDEXLINK= projects.html -SUBDIR= acpi busdma c99 dingo gnats4 mips bigdisk netperf nanobsd +SUBDIR= acpi busdma c99 dingo gnats4 ideas mips bigdisk netperf nanobsd .include "${WEB_PREFIX}/share/mk/web.site.mk" diff --git a/en/projects/ideas/Makefile b/en/projects/ideas/Makefile new file mode 100644 index 0000000000..4d0a62c0e4 --- /dev/null +++ b/en/projects/ideas/Makefile @@ -0,0 +1,17 @@ +# FreeBSD list of projects and ideas for volunteers +# +# $FreeBSD$ + +MAINTAINER= joel + +.if exists(../Makefile.conf) +.include "../Makefile.conf" +.endif +.if exists(../Makefile.inc) +.include "../Makefile.inc" +.endif + +DOCS= index.sgml +DATA= style.css + +.include "${WEB_PREFIX}/share/mk/web.site.mk" diff --git a/en/projects/ideas/index.sgml b/en/projects/ideas/index.sgml new file mode 100644 index 0000000000..9a0b02f977 --- /dev/null +++ b/en/projects/ideas/index.sgml @@ -0,0 +1,823 @@ + + + + %navincludes; + %includes; + %developers; +]> + + +&header; + +
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.
+ +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.
+ +Technical contact: &a.alfred;
+Create the autofs file system from a specification. Most of this work is + done, however, kernel transport and interaction with the "amd" automounter + needs to be completed.
+Requirements:
+Technical contact: &a.jwd;
+Patches: http://people.FreeBSD.org/~jwd/magiclinks.tgz
+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).
+Requirements:
+Rev. 1.115 of + md.c has a discussion of the problem.
+Requirements:
+Technical contact: &a.mlaier;
+The current sx(9) implementation has several problems that make it unusable + in many areas: Might sleep (cv_wait) on the shared lock acquisition, + implicit, hardcoded priority order without starvation protection, ... There + are several handrolled lock implementations with SX-semantics in the tree + already that solve some of the problems in their specific domain: MAC, pfil, + ipfw, if_bridge, ...
+Requirements:
+Contact: &a.brd;
+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.
+Requirements:
+Technical contacts: &a.netchild;, &a.ariff;
+ +Requirements:
+Technical contact: &a.netchild;
+ +4Front Technologies will go live with an improved OSS API in the near future + and we are discussing syncing with this API at the freebsd-multimedia mailing + list. 4Front Technologies offered assistance. A volunteer would have + to:
+Requirements:
+Technical contact: &a.netchild;
+URL: 4Front + Technologies, SALSA
+ +Requirements:
+Technical contact: &a.ariff;
+ +Requirements:
+Technical contact: &a.ariff;
+ +URL: HDA + Specification
+Requirements:
+Technical contact: &a.philip;
+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).
+Requirements:
+Technical contact: &a.scottl;
+&a.scottl; has been working on this for a while, and he has patches in + Perforce.
+Requirements:
+Technical contact: Danny Braniss
+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.
+Requirements:
+Technical contact: &a.bruno;
+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 are sys/sys/ckpt.h, sys/checkpt/* and + sys/kern/imgact_elf.c.
+Requirements:
+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 this compressed + file. 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).
+Requirements:
+Technical contact: &a.jhb;
+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 both + implementations and port interesting/good parts.
+Requirements:
+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.
+Requirements:
+Requirements:
+Technical contact: Devon H. O'Dell
+ +Need to get the DTrace provider working. This is the epicenter of DTrace + and it is the first step to making the rest of it work from the kernel side + of things. Userland stuff is 98% done. The other 2% will be addressed later + when some kernel dependencies are satisfied.
+Requirements:
+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 emulation mailinglist regarding + the userland part of the linuxulator.
+Requirements:
+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.
+Requirements:
+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.
+Requirements:
+Technical contacts: &a.njl;, &a.bruno;
+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.
+Requirements:
+Requirements:
+Technical contact: &a.alfred;
+Add the ability to remotely access devices from one system to another. The + goal is to allow remote access to resources such as disks, sound devices, + and other miscellaneous pieces of hardware over the network. This project + would be a good resume builder, but is not for the faint of heart.
+Requirements:
+Technical contact: &a.alfred;
+ +Requirements:
+Technical contact: &a.alfred;
+Moving the lockd implementation into the kernel provides several key + performance and semantic improvements.
+Requirements:
+Technical contact: &a.brooks;
+URL: The Web100 project
+The Web100 project was created to address the problems of TCP performance + over long-fat network pipes. They created an interesting set of tuning and + monitoring patches for Linux which enable significantly better performance + in this area. Integrating this work into FreeBSD could provide significant + benefits in terms of TCP performance in certain environments.
+Requirements:
+Technical contact: &a.alfred;
+Add meta-data to the system in order to trap intruders and provide an audit + log. The goal of this project is to create several means of marking an event + as a foreign act (such as opening a trap file) which halts the system and + provides as much information as possible, possibilities include using + extended attributes to tag such "mines".
+Requirements:
+Requirements:
+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.
+Requirements:
+Technical contact: &a.nik;
+&a.nik; has written a regression test infrastructure using Perl. More of + the regression tests should be made to work with libtap.
+Requirements:
+Technical contact: &a.brooks;
+One of the major issues in a project with the size of FreeBSD is monitoring + changes in performance characteristics over time. Doing this requires + several things. Those include a suite of appropriate tests, hardware to + run the tests on, a database to store results in, and software to + extract interesting results and display them. Solving the whole problems + is probably beyond the scope of one summer's work, but an interesting + subset should be manageable.
+ +Additional projects may be found by browsing the FreeBSD Development Projects page. The most + prominent projects are:
+Do not forget to have a look at the other projects too or by viewing some + of the recent Developer Status Reports.
+ +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:
+Additionally, there are a lot of interesting mailing + lists that can be used when searching information about specific + subjects.
+ +