TODO revision 1.13
11.13Sjmmv# $NetBSD: TODO,v 1.13 2005/09/23 12:10:32 jmmv 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.9Ssimonb kernel support 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+ speed up sort(1) by using mmap(2) rather than temp files 641.4Sagc+ autoconf version of nawk, for use in non-NetBSD pkgsrc 651.4Sagc+ port valgrind to NetBSD for pkgsrc, then use it to do an audit of 661.4Sagc any memory leakage 671.5Sagc+ implement POSIX async IO 681.4Sagc+ help in implementing various things in pkgsrc 691.4Sagc+ simplify some of the quirks in our build system 701.4Sagc+ help out with scripts for tgm/autobuild 711.4Sagc+ some PR fixing/re-categorising/investigating/closing 721.4Sagc+ investigate zebra or quagga in gnusrc rather than routed 731.4Sagc+ do a type-punned pointer sweep for gcc3 (and fix the problems, not 741.4Sagc the symptoms) 751.4Sagc+ kernel fine-grained locking 761.8Sjunyoung+ write a BSD-licensed web browser 771.4Sagc+ write a BSD-licensed privacy guard like gnupg or pgp 781.4Sagc+ perhaps look at putting wonka into src/ (with uuencoded class lib?) 791.4Sagc+ investigate ProPolice 801.4Sagc+ document autoconf framework 811.4Sagc+ write an overview document for openssl and certificates 821.4Sagc+ documentation project help 831.4Sagc+ investigate which userland utilities and daemons would benefit from 841.4Sagc kqueue, and rewrite them 851.4Sagc+ better testing in general; in particular, more regression tests 861.4Sagc+ better LKM version checking 871.4Sagc+ add a native scheme interpreter 881.4Sagc+ add platform support for TenDRA compiler suite 891.7Sjmmv+ merge moused(8) with wsmoused(8) as a new work mode (i.e. serial) 901.12Sagc+ re-design our mbuf/network buffer memory handling so that it is simpler 911.12Sagc and can handle zero copy tcp 921.12Sagc+ re-design our signal handling path. It is far too complicated and will not 931.12Sagc be easy to accommodate MP code 941.12Sagc+ Examine our vnode locking and vfs layer and see what needs to be changed 951.12Sagc for locking in layered filesystems to really work 961.13Sjmmv+ Make mountd(8) update the in-kernel exports list for each file system 971.13Sjmmv atomically. Many parts of the utility will need a rewrite, but the kernel 981.13Sjmmv functionality is already there (just enable the "notyet" blocks of code in 991.13Sjmmv sys/nfs/nfs_export.c). 100