diff --git a/en/projects/Makefile b/en/projects/Makefile index 14f15e5746..47a0078a1a 100644 --- a/en/projects/Makefile +++ b/en/projects/Makefile @@ -1,4 +1,4 @@ -# $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" @@ -14,6 +14,6 @@ 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 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" [ +<!ENTITY base CDATA "../.."> +<!ENTITY date "$FreeBSD$"> +<!ENTITY title "FreeBSD list of projects and ideas for volunteers"> +<!ENTITY % navincludes SYSTEM "../../includes.navdocs.sgml"> %navincludes; +<!ENTITY % includes SYSTEM "../../includes.sgml"> %includes; +<!ENTITY % developers SYSTEM "../../developers.sgml"> %developers; +]> + +<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> + +<hr> + +<h2>Project ideas</h2> + +<h3>File System</h3> +<ul> + <li><a href="#p-autofs">Autofs</a></li> + <li><a href="#p-magicsymlinks">Implement Magic Symlinks</a></li> + <li><a href="#p-mdfs">Fix mdfs lockups when using non-sync operation + modes</a></li> + <!--<li><a href="#p-logicalvolume">Logical Volume Manager</a></li>--> +</ul> + +<h3>Kernel</h3> +<ul> + <li><a href="#p-sxsemantics">Usable lock implementation with + SX-semantics</a></li> + <li><a href="#p-docsysctl">Document as many sysctls as possible</a></li> + <li><a href="#p-docsound">Document the sound subsystem</a></li> + <li><a href="#p-sync4front">Syncing with the 4Front Technologies OSS v4 + API</a></li> + <li><a href="#p-implement4front">Implement necessary kernel interface for + 4Front Technologies ALSA to OSS wrapper (SALSA)</a></li> + <li><a href="#p-soundlocking">Improve locking of the sound + system</a></li> + <li><a href="#p-hda">Add High Definition Audio (HDA) support to our sound + system</a></li> + <li><a href="#p-geninput">Implement a generic input device layer</a></li> + <li><a href="#p-camlocking">Add locking to the CAM layer</a></li> + <li><a href="#p-iscsi">Implement iSCSI</a></li> + <li><a href="#p-processcheck">Port DragonFly's process + checkpointing</a></li> + <li><a href="#p-memcpy">Evaluate and perhaps port DragonFly's optimized + memcpy/bcopy/bzero support subsystem (this includes an FPU subsystem + overhaul)</a></li> + <li><a href="#p-bootcode">Evaluate and perhaps sync FreeBSD i386 boot code + with DragonFly's boot code</a></li> + <li><a href="#p-cpuusage">Fix the CPU usage display in top for threaded + processes</a></li> + <li><a href="#p-pcihotplug">Implement PCI-Hotplug support</a></li> + <li><a href="#p-dtrace">Implement something similar to Solaris' + DTrace</a></li> + <li><a href="#p-amd64linux">Add amd64 native support to the + Linuxulator</a></li> + <li><a href="#p-updatelinux">Update the Linuxulator</a></li> + <li><a href="#p-assembler">Annotate every assembler file [*.[sS]] with + dwarf2 call frame information</a></li> + <li><a href="#p-suspend">Suspend to disk</a></li> +</ul> + +<h3>Networking</h3> +<ul> + <li><a href="#p-zeroconf">Add zeroconf (Rendezvous/Bonjour) support to + FreeBSD</a></li> + <!--<li><a href="#p-isdn4bsd">Modernize ISDN4BSD</a></li>--> + <li><a href="#p-networkdisk">Network Disk Device</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-web100">Port Web100 to FreeBSD</a></li> +</ul> + +<h3>Security</h3> +<ul> + <li><a href="#p-securemines">SecureMines</a></li> +</ul> + +<h3>Userland / Installation Tools</h3> +<ul> + <li><a href="#p-sysinstall">Small sysinstall renovation</a></li> + <li><a href="#p-pxeinstaller">Bundled PXE Installer</a></li> + <li><a href="#p-regression">Improve our regression testing system</a></li> + <li><a href="#p-performancetracking">Tracking performance over time</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> + +<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. Most of this work is + done, however, kernel transport and interaction with the "amd" automounter + needs to be completed.</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>Implement 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><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>Fix mdfs lockups when using non-sync operation modes</h2> +<p><a href="&cgibase;/cvsweb.cgi/sys/dev/md/md.c#rev1.115">Rev. 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><!-- netchild --> + +<hr> + +<!-- +<a name="p-logicalvolume"></a> +<h2>Logical Volume Manager</h2> +<p><strong>Mentor</strong>: <a href="mailto:none">none</a></p> +<p>none</p> +<p><strong>Requirements</strong>:</p> +<ul> + <li>none</li> +</ul> + +<hr> +!--> + +<a name="p-sxsemantics"></a> +<h2>Usable lock implementation with SX-semantics</h2> +<p><strong>Technical contact</strong>: <a + href="mailto:mlaier@FreeBSD.org">&a.mlaier;</a></p> +<p>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, ...</p> +<ul> + <li>Review existing uses of non-standard sx-locks.</li> + <li>Design an API usable to replace most/all of the handrolled hacks or find + an existing API to do the same.</li> + <li>Write the actual code.</li> +</ul> +<p><strong>Requirements</strong>:</p> +<ul> + <li>C knowledge.</li> + <li>Knowledge about shared/exclusive locking in SMP systems.</li> +</ul> + +<hr> + +<a name="p-docsysctl"></a> +<h2>Document as many sysctls as possible</h2> +<p><strong>Contact</strong>: <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.</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><!-- Glenn Dawson <glenn@antimatter.net> --> + +<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> +<p><!-- Description needed --></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> +</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-sync4front"></a> +<h2>Syncing with the 4Front Technologies OSS v4 API</h2> +<p><strong>Technical contact</strong>: <a + href="mailto:netchild@FreeBSD.org">&a.netchild;</a></p> +<p><strong>URL</strong>: <a href="http://www.opensound.com/">4Front + Technologies</a></p> +<p>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:</p> +<ul> + <li>Add the necessary interfaces.</li> + <li>Add appropriate code to the sound subsystem/drivers where possible.</li> + <li>Document the work (manual pages, maybe sound subsystem chapter in the + FreeBSD Architecture Handbook, maybe extending the example driver). This + part overlaps with the sound subsystem documentation project. Maybe + 4Front is willing to donate parts of their documentation. Coordination + regarding this is required.</li> + <li>Use the improved API in our userland programs where it is + beneficial.</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>At least one supported sound card.</li> +</ul><!-- netchild --> + +<hr> + +<a name="p-implement4front"></a> +<h2>Implement necessary kernel interface for 4Front Technologies ALSA to OSS + wrapper (SALSA)</h2> +<p><strong>Technical contact</strong>: <a + href="mailto:netchild@FreeBSD.org">&a.netchild;</a></p> +<p><strong>URL</strong>: <a href="http://www.opensound.com/">4Front + Technologies</a>, <a + href="http://www.4front-tech.com/forum/viewtopic.php?t=296">SALSA</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>At least one supported sound card.</li> +</ul><!-- netchild --> + +<hr> + +<a name="p-soundlocking"></a> +<h2>Improve locking of the sound system</h2> +<p><strong>Technical contact</strong>: <a + href="mailto:ariff@FreeBSD.org">&a.ariff;</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 the FreeBSD locking methods.</li> +</ul><!-- netchild --> + +<hr> + +<a name="p-hda"></a> +<h2>Add High Definition Audio (HDA) support to our sound system</h2> +<p><strong>Technical contact</strong>: <a + href="mailto:ariff@FreeBSD.org">&a.ariff;</a></p> +<p><!-- Description needed --></p> +<p><strong>URL</strong>: <a href="http://www.intel.com/standards/hdaudio/">HDA + Specification</a></p> +<ul> + <li>Have a look at the specification.</li> + <li>Implement HDA 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>HDA sound card.</li> +</ul><!-- netchild --> + +<hr> + +<a name="p-geninput"></a> +<h2>Implement a 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><!-- netchild, philip --> + +<hr> + +<a name="p-camlocking"></a> +<h2>Add locking to the CAM layer</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><!-- netchild --> + +<hr> + +<a name="p-iscsi"></a> +<h2>Implement 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><!-- netchild --> + +<hr> + +<a name="p-processcheck"></a> +<h2>Port DragonFly's 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 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><!-- netchild --> + +<hr> + +<a name="p-memcpy"></a> +<h2>Evaluate and perhaps port DragonFly's optimized memcpy/bcopy/bzero support + subsystem (this includes an FPU subsystem overhaul)</h2> +<p>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><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><!-- netchild --> + +<hr> + +<a name="p-bootcode"></a> +<h2>Evaluate and perhaps sync FreeBSD i386 boot code with DragonFly's boot + code</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 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><!-- netchild --> + +<hr> + +<a name="p-cpuusage"></a> +<h2>Fix the CPU usage display in top for threaded processes</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.</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><!-- netchild --> + +<hr> + +<a name="p-pcihotplug"></a> +<h2>Implement PCI-Hotplug support</h2> +<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 the FreeBSD device drivers.</li> +</ul><!-- netchild --> + +<hr> + +<a name="p-dtrace"></a> +<h2>Implement something similar to Solaris' DTrace</h2> +<p><strong>Technical contact</strong>: <a + href="mailto:dodell@iXsystems.com">Devon H. O'Dell</a></p> +<p><strong>URL</strong>: <a href="http://www.sitetronics.com:8080/">Perforce + repository</a></p> +<p>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.</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><!-- netchild --> + +<hr> + +<a name="p-amd64linux"></a> +<h2>Add amd64 native support to the Linuxulator</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><!-- netchild --> + +<hr> + +<a name="p-updatelinux"></a> +<h2>Update the Linuxulator</h2> +<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.</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 how to do a clean room implementation of GPL'ed + code (no copy & paste!).</li> +</ul><!-- netchild --> + +<hr> + +<a name="p-assembler"></a> +<h2>Annotate every assembler file [*.[sS]] with 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.</p> +<p><strong>Requirements</strong>:</p> +<ul> + <li>Knowledge of assembly code.</li> + <li>Knowledge of ".cfa_*" pseudo-ops to insert dwarf2 frame descriptors.</li> +</ul><!-- netchild: peter via arch --> + +<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-zeroconf"></a> +<h2>Add zeroconf (Rendezvous/Bonjour) support to FreeBSD</h2> +<p><!-- Description needed --></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><!-- netchild --> + +<hr> + +<!-- +<a name="p-isdn4bsd"></a> +<h2>Modernize ISDN4BSD</h2> +<p>Description needed</p> +<ul> + <li>Re-factor i4b to allow to implement locking.</li> + <li>Modernize the use of kernel APIs in i4b, e.g. use busspace(9)</li> + <li>Test/fix it on amd64.</li> + <li>Determine the requirements of external software like asterisk and add + missing interfaces.</li> + <li>Write/add drivers which get recommended by asterisk.</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>Knowledge about ISDN.</li> + <li>Knowledge about device driver APIs.</li> + <li>A good understanding of the FreeBSD locking methods.</li> +</ul> + +<hr> +--> + +<a name="p-networkdisk"></a> +<h2>Network Disk Device</h2> +<p><strong>Technical contact</strong>: <a + href="mailto:alfred@FreeBSD.org">&a.alfred;</a></p> +<p>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.</p> +<p><strong>Requirements</strong>:</p> +<ul> + <li>Understanding or interest in remote procedure call systems.</li> + <li>Understanding or interest in networking (TCP/IP).</li> + <li>Interest to learn how &unix; device drivers work as well as process + management.</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> +<p><!-- Description needed --></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-web100"></a> +<h2>Port Web100 to FreeBSD</h2> +<p><strong>Technical contact</strong>: <a + href="mailto:brooks@FreeBSD.org">&a.brooks;</a></p> +<p><strong>URL</strong>: <a + href="http://www.web100.org/">The Web100 project</a></p> +<p>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.</p> +<p><strong>Requirements</strong>:</p> +<ul> + <li>Good knowledge of C.</li> + <li>The features of Web100 need to be mapped into appropriate FreeBSD + abstractions and integrated into the system.</li> + <li>The performance impact of these changes would have to be quantified + before the changes could be introduced.</li> + <li>Good understanding of the TCP protocol.</li> + <li>Good understanding of kernel interfaces.</li> +</ul> + +<hr> + +<a name="p-securemines"></a> +<h2>SecureMines</h2> +<p><strong>Technical contact</strong>: <a + href="mailto:alfred@FreeBSD.org">&a.alfred;</a></p> +<p>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".</p> +<p><strong>Requirements</strong>:</p> +<ul> + <li>Good knowledge of C.</li> + <li>Good understanding of the Unix process model.</li> + <li>Good understanding of the FreeBSD kernel.</li> +</ul> + +<hr> + +<a name="p-sysinstall"></a> +<h2>Small sysinstall renovation</h2> +<p><!-- Description needed --></p> +<ul> + <li>Ask for country & keyboard layout at start - so international keyboards + work correctly.</li> + <li>Ask for network configuration before install - so you do not have to + configure the net twice.</li> + <li>Get hostname from dhcp server as well.</li> + <li>Make a guess of the timezone based upon country & keyboard.</li> + <li>Write the FreeBSD version at the top of the display (or somewhere similar + visible) - so lazy users know what they are installing (version: release, + stable, snapshot + arch: i386, amd64, etc) even when the CD is + unlabeled.</li> + <li>Other usability improvements not yet thought of.</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><!-- Martin Nilsson <martin@mullet.se> --> + +<hr> + +<a name="p-pxeinstaller"></a> +<h2>Bundled 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><strong>Requirements</strong>:</p> +<ul> + <li>Good PXE knowledge.</li> +</ul> + +<hr> + +<a name="p-regression"></a> +<h2>Improve our regression testing system</h2> +<p><strong>Technical contact</strong>: <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><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-performancetracking"></a> +<h2>Tracking performance over time</h2> +<p><strong>Technical contact</strong>: <a + href="mailto:brooks@FreeBSD.org">&a.brooks;</a></p> +<p>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.</p> + +<hr> + +<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="../dingo/index.html">Network Cleanup and Consolidation + 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: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: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> 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; +}