KernelNewbies:

There are many ways for people to start out in Linux kernel development. One good place to start is the KernelJanitors project, where you can become familiar with the Linux kernel source tree and development style by making small cleanups and bug fixes all over the tree, together with the other kernel janitors.

For Kernel Hackers

Please add suitable projects here to help Computer Science students do something useful in the time they need to spend on projects anyway. Suitable projects:

Small Linux features

A good next step is to implement small, relatively self contained, features that the Linux kernel needs but have not been implemented yet. When you "take" such a feature, please add your name in the "Developer" column and the date you decided to take the project in the "Date taken" column.

Project

Summary

Contact

Difficulty (1-10)

Developer

Date taken

Merged in

setrlimit64/getrlimit64

64 bit versions of set/getrlimit, see bug 5042

Andrew Morton - akpm (at) linux-foundation.org

6

Narendra Prasad (narendramind (at) gmail.com)

26-Jan-2008

31-Mar-2008

/dev/random statistics

interface that shows the amount of entropy generated via the interfaces per second or so and also the amount consumed

1

Marat Stanichenko (maratrus (at) mail.ru)

August 2008

/PowerSaving

power saving tweaks

Powertop mailing list

3

various

/SwapoutClustering

swap out virtually contiguous pages together

Rik van Riel - riel (at) redhat.com

5

Rajesh.A.R raajeshar(at)gmail(dot)com Michael Pellon pellon (at) bcm (dot) tmc (dot) edu

Sept 15th 2009 December 17th 2009

/Mac80211Suspend

mac80211 suspend/resume support

Johannes Berg - johannes (at) sipsolutions.net

5

Pankaj ( pankaj.linux@gmail.com ) / BobCopeland

16-Jun-2008

19-Jan-2009 (in wireless-testing)

/pfiles

add reporting of socket information to pfiles SystemTap script

Eugene Teo - eteo (at) redhat.com

3

Luís Henriques - lhenriques (at) netvisao.pt

17 Oct 2007

19 Jan 2008, see here

/FasterRebuild

Increase speed for a build with no updates

Sam Ravnborg - sam (at) ravnborg.org

5

Kumar Vishal

17 Sep 2008

ASAP

/FasterRebuild2

Increase speed for a build which updates a single file

Sam Ravnborg - sam (at) ravnborg.org

?

Kumar Vishal

17 Sep 2008

ASAP

/MenuConfig

Update menuconfig to a modern ncurses look & feel

Sam Ravnborg - sam (at) ravnborg.org

5

Nir Tzachar

1 Sep 2008

/KconfigSelectRemoval

Allow removal of select from Kconfig files

Jörn Engel - joern (at) logfs.org

4

Narendra Prasad (narendramind (at) gmail.com)

16 Sep 2008

/Raid1ReadBalancing

Add read balancing to RAID 1

Rik van Riel - riel (at) redhat.com

4

Konstantin Sharlaimov - konstantin.sharlaimov (at) gmail.com ,prajith - emailprajith@gmail.com

17 Oct 2007

/AsynchronousSystemCalls

Make all system calls asynchronous - or at least the ones that can stall. [As a MS dissertation idea, to work on] -- Sourish

b.phani@yahoo.co.in , Sourish Banerjee - sourish (dot) banerjee (dot) 05 (at) gmail (dot) com

5

Phanisharma, Sourish Banerjee

1st Apr 2008 15th, Jan 2009 Onwards

/SmackInterface

Implement network interface default labels for Smack

Casey Schaufler - casey (at) schaufler-ca.com

5

Narendra Prasad (narendramind (at) gmail.com)

23 Apr 2008

/SmackIPv6

Implement IPv6 networking for Smack

Casey Schaufler - casey (at) schaufler-ca.com

8

Narendra Prasad (narendramind (at) gmail.com)

23 Apr 2008

/NoMoreModuleVmalloc

Place module text in to large pages instead of the small pages that vmalloc() uses

Dave Hansen - dave@sr71.net

4

Daniel Webster <dannywebster@gmail.com> "Joshi, Kedar" <kedar.joshi@intel.com> shashank karkare <karkareshashank@gmail.com>

2014-06

Larger projects

Alternatively, there are some larger projects. Again, when you "take" such a project, please add your name in the "Developer" column and the date you decided to take the project in the "Date taken" column.

Project

Summary

Contact

Difficulty (1-10)

Developer

Date taken

Merged in

/Mac80211TestDriver

Test mac80211 without real hardware

Johannes Berg - johannes (at) sipsolutions.net

depends

Igor - igor_trindade<at>yahoo<dot>com<dot>br

?

various commits, mostly by Jouni

/VirtRootkitBlocker

Block rootkits using virtualization (Xen)

Rik van Riel - riel (at) redhat.com

7

prabir - android_online (at) yahoo.com

16 Oct 2007

/VirtRootkitBlocker

Block rootkits using virtualization (KVM)

Rik van Riel - riel (at) redhat.com

7

/ResourceControl

Better resource control

kalium (at) gmx.de

7

Sri Ram, kishore.kernel.dev at gmail.com

02-05-10

/SelfOptimizingBlockDevice

Self-optimizing read-write block devices

kalium (at) gmx.de

7

Micah Gruber - micah.gruber (at) gmail.com

19 Oct 2007

/CorrectnessProofs

Proof that caching/buffering/transactions/syncs are handled correctly.

kalium (at) gmx.de

10+

/Impersonation

Add impersonation feature to the kernel

Alex (dot) Slesarev (at) gmail.com

7

Onkar Mahajan - onkar[dot]n[dot]mahajan[at]gmail[dot]com

21 Oct 2008

VMware image mounter

Being able to map different types of virtual disk formats to appear as blockdevice or as real ide/scsi device. For example, being able to mount VMware .vmdk virtual disks or use them as blockdevice. replace ancient/unstable vmware-mount.pl. See http://communities.vmware.com/message/749768 . news on 12/26/07: Apparently, it looks vmware is adressing this. Latest beta for their hosted products has a fuse based replacement for vmware-mount.pl/vmware-loop which is able to map a virtual disk to a flat file. mapping that file to a blockdevice is easy then (losetup or device-mapper) . closed source, though.

devzero (at) web.de

?

Real mode emulation for virtualization

Real mode support: VT support for real mode is terrible, so we need to do it in software. This means extending the x86 emulator (x86_emulate.c) to handle more instructions, and changing the execution loop to call the emulator for real mode

dor.laor (at) qumranet.com

9

Mohammed Gamal - m.gamal005[at]gmail[dot]com

Guest shared memory

Add a qemu interface for sharing memory between guests. Using a pci device to expose the shared memory is probably a good starting point.

dor.laor (at) qumranet.com

7

Onkar Mahajan - onkar[dot]n[dot]mahajan[at]gmail[dot]com

21 Oct 2008

dm-cache

A device mapper target to use flash memory as a disk accelerator

riel (at) redhat.com

6

Himanshu Barthwal- himanshu_barthu@yahoomail.com Wilson Bright - rombright@gmail.com

23 October 2008 15 Dec 2008

Large extents for ext4

ext4 currently limits extents to 8MB

willy (at) infradead.org

8



Projects that could use more help

Another possibility is to get involved with an existing kernel project that needs some help. Since these projects need multiple people, there is no need to claim these.

Project

Summary

Compressed Caching

Compressed Caching is a new level in the virtual memory hierarchy, where pages are stored in some compressed format, decreasing the number of page faults that are serviced by slow hard disks.

FireWire subsystem

The Linux1394 project has a seemingly ever-growing to-do list of bugs and other items, ranging from small cleanups to implementation of full drivers (e.g. IP over FireWire). If you have FireWire hardware, working on these drivers may be a good entry into kernel hacking because most FireWire specs are open, some even gratis. See the Wiki at linux1394.org for the to-do list and links to specifications.

Connection Oriented Routing

This project addresses some shortcomings (fairness, performance, privacy) of the TCP/IP Stack in mesh networks with a new layer3/4 protocol. Some things are running and need more testing.

OpenSSI

OpenSSI is a comprehensive clustering solution offering a full, highly available single-system image (SSI) environment for Linux. Development involves porting to newer kernels, regression testing, and fixing bugs in the clustering file system, process management, networking, IPC, shared memory, and init as well as userspace system utilities in a distributed computing environment.

open bugs at bugzilla.kernel.org

There are more than 1000 open bugreports in kernel bugzilla. The bugs to fix are of difficulty level 1-10 and there`s a lot to learn there, because nearly every part of the kernel gets touched. Please help identifying and fixing Linux kernel bugs.

Kernel-Testers

The Linux kernel evolves at a breath-taking speed. But while adding new features and fixing others, developers often break things and introduce regression. Some call that ....progress. ;-) Please help finding bugs and regression in the kernel. Be part of the QA-team. - "Don't feel bad about being a pest, because we need more pests to keep all of us kernel developers in line" ( Greg K-H at OLS2006 )

Tux3

Tux3 is a write-anywhere, atomic commit, btree-based versioning filesystem.


KernelNewbies: KernelProjects (last edited 2020-03-29 10:17:42 by MatthewWilcox)