Note client-side ssh change.
[ikiwiki.git] / docs / developer / ProjectsPage.mdwn
index 5b3972a..8395dd4 100644 (file)
@@ -1,4 +1,4 @@
-# DragonFly Projects 
+[[!meta title="DragonFly Projects"]]
 
 This page shall serve as a common place to look if you're in search of a DragonFly related project. It's also the place to check if someone else is already working on it (to prevent project collision) or should be contacted.
 
@@ -21,10 +21,6 @@ Projects that can be clearly used for Google Code-In are marked with their categ
 * Add lwp support to ptrace/gdb/core dumps.
 * UTF8 support in the console
 
-### dma
-* Make dma(8) our default MTA
-* Remove sendmail (optional)
-
 ### Scalability (algorithmic performance) (GCI:Research)
 * [http://bulk.fefe.de/scalability/](http://bulk.fefe.de/scalability/) 
 * [http://bulk.fefe.de/lk2006/talk.pdf](http://bulk.fefe.de/lk2006/talk.pdf)
@@ -33,7 +29,7 @@ Projects that can be clearly used for Google Code-In are marked with their categ
 * Compile and test your changes.
 * Verify that the checksum (sha(1)) of the unmodified object matches the checksum of the cleaned object.  Check also with strip(1)+sha(1)  
 
-### Port BSD-licensed tools (ex: `grep`, `diff` and `sort`) (GCI:Code)
+### Port BSD-licensed tools (ex: `diff` and `sort`) (GCI:Code)
 * The OpenBSD guys already did some work related to that.
 * If you manage to bring the tools to DragonFly, check if everything works as expected (e.g. rc.d scripts, make world runs, ...).
 
@@ -62,16 +58,26 @@ Projects that can be clearly used for Google Code-In are marked with their categ
 * Port this core functionality into a public libhammer library so that other base and third party utilities may take advantage of it.
 * See commit: cb7575e6a89409a2041a37fcfc22ce9e41297ab8 -- libHAMMER already exists, port functionality into it!
 
-### Clean up crypt(3) consumers
-* crypt(3) can legitimately return NULL on error, but many consumers do not check for this, instead passing the return directly to str[n]cmp. Fix these cases.
-* Fix these cases in pkgsrc as well.
+### Live images enhancement
+
+The live images could be made easier to use by not assuming a QWERTY keyboard layout.
+
+Not beeing able to choose a localized keyboard layout before having to type 'installer' or 'root' may be a deal breaker for some users.
+A simple menu replacing login(1) and displaying the following three choices could be a good solution:
+
+1. Set keyboard layout
+2. Launch the installer
+3. Login as root
+
+### pkill/pgrep enhancement
+
+killall recently gained a -T flag to kill all descendents of a tty, bring this feature to pkill/pgrep and evaluate any other features flags of these utilities and bring them to parity.
 
 ## Kernel projects 
 
 ### One-liners
 * Port the BSDL OSS code to DragonFly
 * Complete Path MTU Discovery by adding a host route to remember the Path MTU and setting a timer to expire old host routes. See netinet/if_ether.c for an example of this mechanism as used by ARP. Periodically increase MTU of hosts that have had its MTU decreased.
-* Implement [`sem_open()`](http://www.opengroup.org/onlinepubs/000095399/functions/sem_open.html), [`sem_close()`](http://www.opengroup.org/onlinepubs/000095399/functions/sem_close.html), and [`sem_unlink()`](http://www.opengroup.org/onlinepubs/000095399/functions/sem_unlink.html). (GCI:Code)
 * Port or update drivers from other systems.
 * Port Linux emulation to x86-64
 
@@ -80,7 +86,6 @@ Projects that can be clearly used for Google Code-In are marked with their categ
 * Bring in support for UFS2, just the changes to extend the width of some fields from 32 bits to 64 bits.  (GCI:Code)
 * hardware drivers. 
 * ext2fs
-* DTrace
 
 ### Code to port/sync from OpenBSD
 * Add support for the NoExecute bit as described in [http://www.openbsd.org/papers/auug04/index.html](http://www.openbsd.org/papers/auug04/index.html).
@@ -91,10 +96,6 @@ Projects that can be clearly used for Google Code-In are marked with their categ
 * A scheduler API supporting multiple scheduler implementations already exists
 * Add a Solaris-like dispatcher framework that can handle more than one installed scheduling policy
 
-### I/O scheduler
-* A pluggable kernel I/O scheduler already exists
-* Implement additional disk scheduling policies
-
 ### Implement boot cache
 * Effectively a smart readahead.
 * Store the pattern of incoming read requests of the boot disk.
@@ -184,16 +185,6 @@ Projects that can be clearly used for Google Code-In are marked with their categ
 ### Tear out condvars
 * Conditional vars -- condvar(9), could be replaced with other locking primitives and our tsleep/wakeup interlock.
 
-### Make karc4random in libkern per-cpu (or at least wrap its own token around it)
-* Verify that it is possible and safe to do this, what care would need to be taken, especially with respect to the random seeding?
-* Pull out locks around calls to karc4rand*
-
-### Improve kernel spinlock debug-ability
-* Add a const char *descr  field to the spinlock structure.
-* Adjust spin_init() and all use cases, SPINLOCK_INITIALIZER() could juse use macro string extensions (# head) to install the name there.
-* Adjust error messages to print the spinlock desc field.
-* This change will require a full world & kernel recompile.
-
 ### Partially rewrite buffer cache
 * Buffer cache buffers map VM pages from the filesystems VM-backed vnodes, the "buffer space" is the maximum amount of virtual space to allocate to these buffers.
 * When the buffer_map KVA space gets fragmented it caused very expensive defrag operations, the buffer_map KVA was recently increased to double the actual buffer space to allow full space utilization in the face of fragmentation and reduce the frequency of defrag operations.
@@ -297,15 +288,5 @@ Projects that can be clearly used for Google Code-In are marked with their categ
 1. machdep.cpu.core_count: 1
 1. machdep.cpu.thread_count: 1
 
-## Live images enhancement
-
-The live images could be made easier to use by not assuming a QWERTY keyboard layout.
-
-Not beeing able to choose a localized keyboard layout before having to type 'installer' or 'root' may be a deal breaker for some users.
-A simple menu replacing login(1) and displaying the following three choices could be a good solution:
-
-1. Set keyboard layout
-2. Launch the installer
-3. Login as root
 
 For more theoretical projects and project concepts see [[ResearchProjects|/docs/developer/ResearchProjectsPage]]