[ikiwiki.git] / docs / developer / gsoc2010 / index.mdwn
619785d7 1[[!meta title="Google Summer of Code 2010"]]
3[[!toc levels=0]]
6decb607 5DragonFly BSD is planning to participate (pending acceptance) in the Google Summer of Code program for 2010.
619785d7 6
eec4180d 8Have a look at our SoC pages from [[2008|docs/developer/GoogleSoC2008/]] and [[2009|docs/developer/gsoc2009]] to get an overview about prior year's projects. The [Projects Page](/docs/developer/ProjectsPage/) is also a potential source of ideas.
619785d7 9
eec4180d 11For more details on Google's Summer of Code: [Google's SoC page](
619785d7 12
619785d7 13
14# Project ideas
d87e1458 161. VFS Quota System
17* Kernelland quota support in the VFS layer
18* Filesystem-agnostic quota support tools for userland
620da328 201. Ultra Fast Boot & Shutdown Speed
95aebbf4 21* Be competitive with GNU/Linux, OSX & MS Windows refinements in this area.
620da328 231. Graphics Kernel Memory Manager Support ( GEM )
95aebbf4 24* Support dealing with graphics NUMA in kernel space for modern graphics hardware
620da328 271. Security/Hardening improvements
0bdfdf08 28* Encrypted swap/filesystems (From NetBSD or OpenBSD?)
29* Extended toolchain hardening
30* NX/XD support in kernel (at least for 64 bit kernels, DF doesn’t support PAE IIRC)
31* More use of randomization (for example in PIDs)
32* Port OpenBSD’s most recent malloc implementation as an option
33* Use blf instead of md5 for passwords etc. (already possible, but not default)
30fbb95b 34
620da328 351. Data Integrity Framework Implementation
9efea71c 36* Something akin to what was done for Linux:
381. Volume Management based on NetBSD's port of LVM2
40 NetBSD reimplemented Linux's device mapper (currently only implementing
41the linear, zero and error targets; Linux has support for a variety of
42targets, including crypt, stripe, snap, multipath) as dm(4). Device mapper
43provides the functionality on which to implement volume management; NetBSD
44has imported LVM2 (which is GPL), but it is possible to create different
45tools for volume management (e.g. IBM's EVMS was also built on top of device
48 The goal of this project is to port both the kernel code, dm(4), and the
49LVM2 userspace libraries and tools from NetBSD. If time remains, the
50student should also implement a proof of concept "stripe" target or, for the
51more ambitious, a "crypt" target.
53 A possible roadmap for this project would be
55 1. Port the dm(4) code
57 This code uses proplib instead of binary ioctls for communicating with
58userspace. Either port proplib, or convert the code to use ioctls.
60 1. Port the userspace tools
62 Integrate the tools in our source tree using a separate vendor branch, as
63is normally done for contrib software (see development(7)). Make any
64DragonFlyBSD-specific changes necessary.
66 1. (Optional) Implement either a "stripe" target or a crypt target.
68 The stripe target must be designed with robustness and extensibility in
69mind, though it is not required to go all the way. It should be flexible
70enough to allow for different RAID level implementations (at least 0, 1
71and 5). Additionally, it should be possible to keep an internal (i.e. part
72of the volume) log to speed up resyncing and parity checking. Implementing
73those features would be ideal, but is not required.
75 The crypt target must allow for different ciphers and cipher parameters and
76should make use of our in-kernel crypto infrastructure. It is probably
77necessary to do the encryption asynchronously which will require extending
78the current infrastructure.
19c9de96 801. Make DragonFly NUMA-aware
82* Parse related ACPI tables
83* NUMA-aware memory allocation
6decb607 85(please add)