[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
things to do
in response to a thread about the faq, dropped patches, time constraints
of developers, and the meaning of life, this is a "things that might be
nice". see also: phk's junior kernel hacker list.
first off, this is basically my personal interest list. it doesn't even
reflect things that may make it into the src tree had i done them myself.
but maybe it will highlight things that can be worked on.
certain types of work are not needed/wanted. bad "help out" projects
include converting rc.conf to XML, an opengl interface to config(8),
rewriting sed in c#, .... if you want to help, just watch the cvs changes
mailing list for what's going on. last week, bgpd and dhclient saw some
action. new code under development is a good place to look for memory
leaks, incorrect malloc/strdup/.../ handling, basic stuff.
don't ask "do you want ... done?" unless it takes a lot of time to do. i
think most developers are more excited by "here's a patch to fix mem leak
in waka.c" than "there's a mem leak. do you want a patch?". now
don't go rewriting the whole program. send a small patch to show you
know what's up and work from there. anyway, that's the kind of thing i'd
be more into.
as for my projects, these are mostly kernel based. if you're really
interested, i can offer some hints about how to proceed, but if you have
to ask "what is that?", it's best to skip ahead an item.
i had been trying to keep projects at www.zeitbombe.org/openbsd.html, but
then just recording the todo list went onto the todo list. so without
further ado, things i've worked on, wanted to work on, or at least thought
about.
- dri. port code from freebsd. also a netbsd port of dri, which may
help.
- bufs and bufq. B_LOCK/B_BUSY flag in bufs is kinda messy. notably, it
prevents the bufq layer from holding a buf. this would be nice, so that
notebook disk writes can be queued indefinitely. currently, you deadlock
when a second reuest comes in. fix it to use rw locks or ref counts.
something so that allocbuf won't steal the mem, but lets us hold off
pushing it to disk.
- use rwlocks. kill a couple random lockmgr we don't need. and
especially kill the various foolock() tsleep/flag loops sprinkled all over
the kernel.
- audio blending. allow multi open and mix the streams.
- dev cloning. this would help the above, but isn't necessary. new flag
to cdevsw that says "make a new vnode".
- syanptics touchpad driver. instead of using plain ps/2 emulation, it
would be nice to enable absolute mode, so i can disable the 'tap is click'
functionality.
- vfs fixing. make union, null, and everything else actually work.
- new fs. webfs, ftpfs, sshfs, ..., probably using portal, which needs
fixing too. would also be cool to have sysctl nodes under /kern/sysctl or
so.
- ULE from freebsd. it's mostly developed to handle HT cpus, but can help
UP too. this should not be too hard, once you get past the thread
conversion and asm chunks.
- ufs2. some of it's in. look at changes in sys/ufs/ufs to see how to
proceed.
- indent. non-kernel work. make the indent program produce style(9)
conformant output by default. this may be easier as a rewrite, possibly
in perl.
- exec ET_DYN files. currently, only ET_EXEC can be run.
- remove block devices, or more accurately, make them synonymous with
character devices.
- /proc/pid/fds permit opening another proc's fds. steal some code from
fdescfs.
- vfs locking. compile a kernel with LOCKDEBUG. watch it blow up.
- jails. do something like freebsd's thing, but make it more extensive.
marko zec write patches for freebsd that cloned just about every kernel
global, so that fake hosts were more complete.
- convert my todo list to html, so i can stick it on my web page.
and now the big projects everybody likes to ask about.
ubc - if you can't send me a patch that fixes the page accounting fuckup
under swapping/load, i don't want to hear about it.
--
we don't live
we just scratch on day to day
with nothing but matchbooks and sarcasm in our pockets