diff --git a/en/projects/ideas/index.sgml b/en/projects/ideas/index.sgml index dcb19b7a88..4ab89393d5 100644 --- a/en/projects/ideas/index.sgml +++ b/en/projects/ideas/index.sgml @@ -1,828 +1,828 @@ - + %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.
If you have any questions about this list, please contact &a.netchild; or &a.joel;.
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;
URL: 4Front Technologies
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
URL: Perforce repository
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.