Cleanup
[ikiwiki.git] / docs / developer / ProjectsPage.mdwn
CommitLineData
b790f880
C
1#acl +Known:write,revert All:read\r
2# DragonFly Projects \r
3This 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.\r
4\r
5[[!toc levels=3 ]]\0\r
6\r
7## Website projects \r
8
9* Correct [mailing lists page](http://www.dragonflybsd.org/community/mail.cgi) and [news page](http://www.dragonflybsd.org/community/news.cgi) to better describe the content of each list.\r
10
11* Create layout for http://bugs.dragonflybsd.org that matches the main site.\r
12
13* Check through all the [DragonFly mirrors](http://www.dragonflybsd.org/community/download.cgi) and report on any that aren't working\r
14
15* Create short list of tasks for a new DragonFly user (this information is all available elsewhere, but it's buried in a lot of other data):\r
16
17* how to upgrade the operating system\r
18
19* how to get to a working desktop\r
20
21* and where and how to report issues.\r
22\r
23## Documentation projects \r
24
25* Check all chapters of the handbook and do the following:\r
26
27* Check if the content applies to DragonFly. If not, change it.\r
28
29* Add new content and enhance the previous chapters\r
30
31* Check for syntax error, typos and wiki errors.\r
32
33* Add prev/next buttons to all pages.\r
34
35* Reorder `/usr/src/UPDATING` to put more relevant information at top; remove data no longer relevant.\r
36
37* Help out in http://bugs.dragonflybsd.org (try to reproduce, diagnose, propose fixes ...)\r
38
39* Organize, contribute to, and finish the C book project.\r
40\r
41## Userland projects \r
42
43* Bring in BSD-licensed versions of some text tools like `grep`, `diff` and `sort`. The Open***BSD 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, ...). Of course the new tools need to have at least all the features of the old GNU tools.\r
44
45* Update the [contributed software](ContribSoftware) which is out-of-date.\r
46
47* Remove `NOINET6` build option\r
48
49* `WARN` corrections to utilities\r
50
51* Clean our code to make it [style(9)](http://leaf.dragonflybsd.org/cgi/web-man?command#style&sectionANY) compatible. 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)\r
52
53* Bring in code from other *BSDs:\r
54
55* smbfs changes from FreeBSD\r
56
57* pf changes from OpenBSD\r
58
59* Randomize mmap() offsets as described in http://www.openbsd.org/papers/ven05-deraadt/index.html\r
60
61* Add extended slice support to `fdisk`\r
62
63* Install Coverity and fix the FreeBSD bugs that were uncovered by Coverity, but do not just blindly pull over the FreeBSD patches. Make sure that you first understand what the patch does.\r
64
65* C99 Standards Conformance. The todo list is on http://wiki.dragonflybsd.org/index.cgi/StandardsConformanceProject (original http://www.in-nomine.org/~asmodai/df/conformance/).\r
66
67* Setup a regression testing machine/system to register and find problems and new improvements..\r
68
69* Networking performance scalability\r
70
71* scalability (algorithmic performance) - ideas: http://bulk.fefe.de/scalability/ and http://bulk.fefe.de/lk2006/talk.pdf\r
72
73* RegressionTest\r
74
75* also check HowToStressTest\r
76
77* Add lwp support to ptrace/gdb/core dumps.\r
78
79* CheckpointFeatures\r
80
81* Linuxulator update (Free***BSD did a lot of work in this area. Look [here](http://wiki.freebsd.org/linux-kernel),\r
82
83* Bringing in version 2.0 of the BSD Installer\r
84
85* Build a Live CD with a DragonFly-specific X desktop, integrated into nrelease build. Check ongoing LiveDVD project: [LiveDVD for Google SoC](LiveDVDGSoC) \r
86
87* UTF8 support in the console\r
88
89* Write a tool to monitor changes in other code bases such as FreeBSD, NetBSD, OpenBSD. corecode is busy with this one (http://oly.corecode.ath.cx/~corecode/cgi-bin/crosscgi.py) (svn repository (https://fortunaty.net/svn/crossref/)).\r
90
91* Work relating GDB:\r
92
93* ptrace/gdb follow-fork-mode support and more (peek at linux)\r
94
95* Change the build to create one libbfd for gdb and binutils\r
96
97* Separate RPC code from NFS into separate library.\r
98\r
99## Kernel projects \r
100
101* Make our sound system support surround sound\r
102
103* Port the BSDL OSS code to DragonFly\r
104
105* 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.\r
106
107* Look for places in the kernel that can benefit from Solaris-style caching of preconstructed slab allocator objects. If we can find enough of these uses, we can add this functionality to the kernel memory allocator.\r
108
109* Implement `sem_open()`, `sem_close()`, and `sem_unlink()`.\r
110
111* Clean our code to make it [style(9)](http://leaf.dragonflybsd.org/cgi/web-man?command#style&sectionANY) compatible. 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)\r
112
113* Setup a regression testing machine/system to register and find problems and new improvements..\r
114
115* Networking performance scalability\r
116
117* scalability (algorithmic performance) - ideas: http://bulk.fefe.de/scalability/ and http://bulk.fefe.de/lk2006/talk.pdf\r
118
119* RegressionTest\r
120
121* also check HowToStressTest\r
122
123* fix `APIC_IO` on SMP\r
124
125* Port drivers from other systems. (Being able to support most of the wireless adapters out there would be nice.)\r
126
127* Port TMPFS. Look [here](http://wiki.freebsd.org/TMPFS) for the work the Free***BSD guys did.\r
128
129* Port ZFS. Look [here](http://wiki.freebsd.org/ZFS) for the work the Free***BSD guys did.\r
130
131* Port NFSv4. [This mail](http://leaf.dragonflybsd.org/mailarchive/kernel/2008-01/msg00065.html) is a good starting point.\r
132
133* Port/sync the following from FreeBSD:\r
134
135* PCI code (to take advantage of power saving features)\r
136
137* cpufreq and powerd\r
138
139* netgraph modules. Contact joerg.\r
140
141* Bring in support for UFS2, just the changes to extend the width of some fields from 32 bits to 64 bits.\r
142
143* hardware drivers.\r
144
145* Port/sync the following from OpenBSD:\r
146
147* Add support for the NoExecute bit as described in http://www.openbsd.org/papers/auug04/index.html.\r
148
149* After that, make user stacks and data heaps non-executable. (W^X)\r
150
151* hardware drivers, specially wireless.\r
152
153* Import/Update DRM from the DRM git repository (http://dri.freedesktop.org/wiki/DRM).\r
154
155* CPU scheduler work:\r
156
157* Design & implement a run-time switchable scheduler framework. (see Luigi's FreeBSD4 scheduler framework at http://info.iet.unipi.it/~luigi/ps_sched.20020719a.diff)\r
158
159* The next step is to add a Solaris-like dispatcher framework that can handle more than one installed scheduling policy, all running on top of the base fixed lwkt priorities.\r
160
161* I/O scheduler work:\r
162
163* factor out, and make the IO scheduler plugabble.\r
164
165* start with a "NOP" scheduler for RAM based devices\r
166
167* implement a anticipatory scheduler (see documentation about the linux anticipatory scheduller)\r
168
169* implement a Fair Queuing scheduler (even out the access to IO between competing processes/users)\r
170
171* Work relating LWKT (LightWeightKernelThreading)\r
172
173* Implement lazy IPI cross-processor lwkt message passing.\r
174
175* Add timeout functionality to lwkt_waitmsg().\r
176
177* Write man pages for the lwkt message passing API.\r
178
179* A real slab allocator. Contact corecode for patches.\r
180
181* clean up buildworld/kernel compilation warnings\r
182
183* Make the kernel more robust. Do this by removing any cases causing a kernel panic on memory allocation failure. Contact Devon H. O'Dell for information and ideas about how this might work.\r
184
185* Port XFS. (Contact joerg)\r
186
187* Computer Architecture related:\r
188
189* Port DragonFly over to Xen.\r
190
191* Port DragonFly over to amd64 (look [here](http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/src/README.amd64) for more information).\r
192
193* Port DTrace\r
194
195* Capriccio threads\r
196
197* Xen support as domU and dom0 platform\r
198
199* DistributedFileSystem\r
200\r
201[[SimonsTODOs]] contain some more or less important things of various sizes and colors\r