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; + +

Introduction

+ +

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.

+ +
+ +

Project ideas

+ +

File System

+ + +

Kernel

+ + +

Networking

+ + +

Security

+ + +

Userland / Installation Tools

+ + +

Additional Information

+ + +
+ + +

Autofs

+

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:

+ + +
+ + +

Implement Magic Symlinks

+

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:

+ + +
+ + +

Fix mdfs lockups when using non-sync operation modes

+

Rev. 1.115 of + md.c has a discussion of the problem.

+

Requirements:

+ + +
+ + + + +

Usable lock implementation with SX-semantics

+

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:

+ + +
+ + +

Document as many sysctls as possible

+

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:

+ + +
+ + +

Document the sound subsystem

+

Technical contacts: &a.netchild;, &a.ariff;

+

+ +

Requirements:

+ + +
+ + +

Syncing with the 4Front Technologies OSS v4 API

+

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:

+ + +
+ + +

Implement necessary kernel interface for 4Front Technologies ALSA to OSS + wrapper (SALSA)

+

Technical contact: &a.netchild;

+

URL: 4Front + Technologies, SALSA

+

+

Requirements:

+ + +
+ + +

Improve locking of the sound system

+

Technical contact: &a.ariff;

+

+

Requirements:

+ + +
+ + +

Add High Definition Audio (HDA) support to our sound system

+

Technical contact: &a.ariff;

+

+

URL: HDA + Specification

+ +

Requirements:

+ + +
+ + +

Implement a generic input device layer

+

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:

+ + +
+ + +

Add locking to the CAM layer

+

Technical contact: &a.scottl;

+

&a.scottl; has been working on this for a while, and he has patches in + Perforce.

+

Requirements:

+ + +
+ + +

Implement iSCSI

+

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:

+ + +
+ + +

Port DragonFly's process checkpointing

+

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:

+ + +
+ + +

Evaluate and perhaps port DragonFly's optimized memcpy/bcopy/bzero support + subsystem (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 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:

+ + +
+ + +

Evaluate and perhaps sync FreeBSD i386 boot code with DragonFly's boot + code

+

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:

+ + +
+ + +

Fix the CPU usage display in top for threaded processes

+

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:

+ + +
+ + +

Implement PCI-Hotplug support

+

+

Requirements:

+ + +
+ + +

Implement something similar to Solaris' DTrace

+

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:

+ + +
+ + +

Add amd64 native support to the Linuxulator

+

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:

+ + +
+ + +

Update the Linuxulator

+

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:

+ + +
+ + +

Annotate every assembler file [*.[sS]] with dwarf2 call frame + information

+

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:

+ + +
+ + +

Suspend to disk

+

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:

+ + +
+ + +

Add zeroconf (Rendezvous/Bonjour) support to FreeBSD

+

+ +

Requirements:

+ + +
+ + + + +

Network Disk Device

+

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:

+ + +
+ + +

NFS Lockd (improve semantics)

+

Technical contact: &a.alfred;

+

+ +

Requirements:

+ + +
+ + +

NFS Lockd (kernel implementation)

+

Technical contact: &a.alfred;

+

Moving the lockd implementation into the kernel provides several key + performance and semantic improvements.

+

Requirements:

+ + +
+ + +

Port Web100 to FreeBSD

+

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:

+ + +
+ + +

SecureMines

+

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:

+ + +
+ + +

Small sysinstall renovation

+

+ +

Requirements:

+ + +
+ + +

Bundled PXE Installer

+

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:

+ + +
+ + +

Improve our regression testing system

+

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:

+ + +
+ + +

Tracking performance over time

+

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.

+ +
+ + +

Projects at FreeBSD.org

+

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.

+ +
+ + +

Technical contacts

+

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.

+ +
+ +&footer; + + diff --git a/en/projects/ideas/style.css b/en/projects/ideas/style.css new file mode 100644 index 0000000000..beecc6f17a --- /dev/null +++ b/en/projects/ideas/style.css @@ -0,0 +1,38 @@ +BODY { +} + +BODY TD { + font-size: 13px; +} + +BODY SMALL { + width: 615px; + font-size: 11px; +} + +.heading { + font-size: 15px; + background-color: #cbd2ec; +} + +.section { + font-size: 15px; + font-weight: bold; + background-color: #e7e9f7; +} + +.notes { + font-size: 13px; + font-weight: normal; +} + +.main { + width: 615px; + height: auto; + text-align: justify; +} + +.list { + width: 550px; + height: auto; +}