* Network, Disk
### SMART capabilities
-* Add to natacontrol (see NetBSD's atactl?)
* Add to camcontrol
+* Add to natacontrol (see NetBSD's atactl?)
### Disk scheduling rc scripts (GCI:Code)
* Create a rc script to manage the disk/io scheduling system
* HAMMER has the capability to expose very rich information to userland through ioctl's.
* Currently the hammer(8) utility makes use of this information in an ad-hoc manner.
* 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.
## Kernel projects
### Implement boot cache
* Effectively a smart readahead.
-* Store the pattern of incoming read requests of the boot disk. (Likely into an array structure for better linear readback.)
+* Store the pattern of incoming read requests of the boot disk. (Likely into an array structure for better linear readback, We mmap() the whole thing into RAM on boot.)
* Sort pattern into a playback list. (Burstsort or a simple quick sort to get things going?)
* Provide feedback of boot cache playback list hit rate for better adaptiveness.
* Clear out free objcache slabs under memory pressure.
* Add reclaim functionality to objcache, such that it may ask consumers to free objects back into it under memory pressure.
+### Tear out serializers
+* Serializers could be _carefully_ replaced with MTX locks
+
+### 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
+* 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*
+
+## Live images enhancement
+
+The live images are pretty rough to use currently. The following minimum enhancements should be added:
+
+1. Let the user choose the keyboard layout at startup, do not assume QWERTY
+2. Configure network interfaces automatically, using DHCP
For more theoretical projects and project concepts see [[ResearchProjects|/docs/developer/ResearchProjectsPage]]