TODO revision 1.8
11.8Sjunyoung#	$NetBSD: TODO,v 1.8 2003/09/02 12:01:14 junyoung Exp $
21.1Slukem
31.1SlukemTHINGS TO BE DONE:
41.1Slukem
51.1Slukem[ Note that this list does not include change requests filed via 'gnats'.
61.1Slukem  For information about them, mail query-pr@NetBSD.org. ]
71.1Slukem
81.1SlukemThis is a list of things that need to be done for NetBSD.  Some of
91.1Slukemthese projects are small, others are large.  Some are extremely
101.1Slukemimportant, others are enhancements to make the system more flexible
111.1Slukemfor the wide variety of NetBSD users and their applications.
121.1Slukem
131.1SlukemIn general there are some guidelines for work to be included in
141.1SlukemNetBSD.  Chief among these are:
151.1Slukem
161.1Slukem	   (1) Keep GPLed stuff out of the kernel.
171.1Slukem	   (2) Introduce little to no more GPLed stuff as non-optional
181.1Slukem	       components of the user environment.
191.1Slukem	   (3) Only clean code, that lends itself to further enhancement
201.1Slukem	   (4) Keep architecture dependent code out of architecture independent
211.1Slukem	       directories
221.1Slukem
231.1SlukemAssociated with some entries are login names which indicate persons or
241.1Slukemgroups who may already be working on that problem.  This isn't to say
251.1Slukemthat others shouldn't also look at it, but consultation with other
261.1Slukemparties may result in less duplicated work.  A directory of these
271.1Slukempersons can be found after the todo list itself.
281.1Slukem
291.1SlukemPlease don't hesitate to suggest more projects for this list.
301.1SlukemSuggestions, comments, etc to projects@NetBSD.org.
311.1Slukem
321.1SlukemHigh Kernel:
331.1Slukem    swap fixes:
341.1Slukem	swap to file of dynamic size; see apollo
351.1Slukem    nfs:
361.1Slukem	kernel suport for lockd(8), lockf(3)
371.1Slukem    clean up support for LKM and protections checking (cgd)
381.1Slukem
391.1SlukemUser programs:
401.1Slukem    rwall nfs-mountees on shutdown
411.1Slukem    add detachment to window
421.1Slukem    clean up gas config files, set up common defines
431.1Slukem
441.1SlukemPie-in-the-Sky:
451.8Sjunyoung    someone should actually test all the netiso stuff.
461.1Slukem    SMB filesystem
471.1Slukem
481.1SlukemDocumentation:
491.1Slukem    modify sys docs to reflect NetBSD/arch-specific stuff
501.1Slukem    clean up src/share/man/{man0,tools} so that we can generate a printable
511.1Slukem        version from the manpages again.
521.1Slukem
531.1Slukemi386 kernel support:
541.8Sjunyoung    better ways of accessing BIOS, i/o space.  some exportable to
551.1Slukem	user space.  See mach3,linux dos emulator
561.8Sjunyoung    i686 optimized versions of copyin/copyout/memcpy/memset/etc. lazy
571.8Sjunyoung        floating-point context switching should be implemented as well.
581.8Sjunyoung    make use of sysenter/sysexit instructions on PIII/4 and Athlon for
591.8Sjunyoung        reducing syscall overhead.
601.4Sagc
611.4SagcThis is a list of suggested smaller projects (in no particular order):
621.4Sagc
631.4Sagc+ implement Unix98 ptys
641.4Sagc+ speed up sort(1) by using mmap(2) rather than temp files
651.4Sagc+ autoconf version of nawk, for use in non-NetBSD pkgsrc
661.4Sagc+ port valgrind to NetBSD for pkgsrc, then use it to do an audit of
671.4Sagc  any memory leakage
681.4Sagc+ someone investigate time taken to boot
691.5Sagc+ implement POSIX async IO
701.4Sagc+ help in implementing various things in pkgsrc
711.4Sagc+ simplify some of the quirks in our build system
721.4Sagc+ help out with scripts for tgm/autobuild
731.4Sagc+ some PR fixing/re-categorising/investigating/closing
741.4Sagc+ investigate zebra or quagga in gnusrc rather than routed
751.4Sagc+ do a type-punned pointer sweep for gcc3 (and fix the problems, not
761.4Sagc  the symptoms)
771.4Sagc+ kernel fine-grained locking
781.8Sjunyoung+ write a BSD-licensed web browser
791.4Sagc+ write a BSD-licensed privacy guard like gnupg or pgp
801.4Sagc+ perhaps look at putting wonka into src/ (with uuencoded class lib?)
811.4Sagc+ investigate ProPolice
821.4Sagc+ document autoconf framework
831.4Sagc+ write an overview document for openssl and certificates
841.4Sagc+ documentation project help
851.4Sagc+ investigate which userland utilities and daemons would benefit from
861.4Sagc  kqueue, and rewrite them
871.4Sagc+ better testing in general; in particular, more regression tests
881.4Sagc+ better LKM version checking
891.4Sagc+ add a native scheme interpreter
901.4Sagc+ add platform support for TenDRA compiler suite
911.7Sjmmv+ merge moused(8) with wsmoused(8) as a new work mode (i.e. serial)
92