The Eudyptula Challenge is a series of programming exercises that teaches Linux kernel development skills. It starts with basic "Hello World" kernel modules and gets progressively more complex, with tasks like submitting patches to the mainline kernel. Over 172 people have had their patches accepted into the kernel as a result of the challenge. It requires basic C skills and patience for working with large open source projects. The challenge is modeled after the Matasano Crypto Challenge and aims to help people learn and contribute to the Linux kernel.
3. What?
¢ ^The Eudyptula Challenge is a series of
programming exercises for the Linux kernel,
that start from a very basic "Hello world" kernel
module, moving on up in complexity to getting
patches accepted into the main Linux kernel
source tree. ̄
4. Chicago Connection!
¢ ^This Challenge is also modeled after the wonderful
Matasano Crypto Challenge, which, if you haven't taken
it already, you really should do so, it's smashing fun. ̄
5. 20 tasks
¢ ^Hello World ̄ kernel module
¢ Built custom kernel from git
¢ Coding style fixes
¢ Submit patch to mainline
¢ and beyond!
6. Skills?
¢ ^A basic understanding of the C programming
language is required. ̄
¢ ^No previous Linux kernel coding experience is
needed, but that of course will help. ̄
¢ Follow the rules!
¢ Most important skill... patience!
C important when participating a large Open Source
project
7. Results
¢ ^172 people have a patch accepted into the
kernel tree. ̄ (LinuxCon August 2014 talk)
¢ 1 person even got a job as a result!
¢ ^I, just now, got a job as an embedded software engineer
because of this challenge. The interview was focused
around it :) It's one of the best things I've done during my
free time. true story. ̄
9. Links
¢ Linux.com: ^Learn How to Contribute to the Lin
ux Kernel, Take the Eudyptula Challenge ̄
¢ LWN.net: Taking the Eudyptula Challenge
¢ LinuxCon Chicago 2014 talk
10. Kernel Newbies
¢ A great resource!
¢ http://kernelnewbies.org/FirstKernelPatch
¢ http://kernelnewbies.org/OutreachyApply