https://lwn.net/Articles/599231/ LWN.net Logo LWN .net News from the source LWN * Content + Weekly Edition + Archives + Search + Kernel + Security + Events calendar + Unread comments + ------------------------------------------------------------- + LWN FAQ + Write for us * Edition + Return to the Kernel page User: [ ] Password: [ ] [Log in] | [Subscribe] | [Register] Subscribe / Log in / New account Taking the Eudyptula Challenge By Jake Edge May 21, 2014 Linux kernel development is tricky to learn. Though there are lots of resources available covering many of the procedural and technical facets of kernel development as well as a mailing list for kernel newbies, it can still be difficult to figure out how to get started. So some kind of "challenge" may be just what the penguin ordered: a series of increasingly difficult, focused tasks targeted at kernel development. As it turns out, the Eudyptula Challenge--which has been attracting potential kernel hackers since February--provides exactly that. As the challenge web page indicates, it was inspired by the Matasano Crypto Challenge (which, sadly, appears to be severely backlogged and not responding to requests to join). The name of the challenge comes from the genus of the Little Penguin (Eudyptula minor) and the pseudonymous person (people?) behind the challenge goes by "Little Penguin" (or "Little" for short). Getting started Signing up for the challenge is easy; just send an email to little at eudyptula-challenge.org. In fact, it is so easy that more than 4700 people have done so, according to Little, which is many more than were expected. The first message one receives establishes the "rules" of the challenge as well as assigning an ID used in all of the subsequent email correspondence with Little. After that, the first task of the challenge is sent. All of the interaction takes place via email, just like Linux kernel development. For the most part, the tasks just require locally building, changing, and running recent kernels. There are a few tasks where participants will need to interact with the wider kernel community, however. A recent rash of cleanup patches in the staging tree may quite possibly be related to the challenge. I started the challenge on March 3 after seeing a Google+ post about it. I have done some kernel programming along the way. I did a couple of minor patches a few years back and some more extensive hacking many moons ago--back in the 2.4 days--and some before that as well. So I was by no means a complete novice. I have a good background in C programming and try to keep up with the Kernel page of a certain weekly publication. While all of that was helpful, it still was quite a bit of work to complete the twenty tasks that make up the challenge. It took a fair amount of effort, but it was also a lot of fun--and I learned a ton in the process. While I won't be revealing the details on any of the tasks (and Little tells me that some have been tweaked over time and may be different than the ones I did), I can describe the general nature and subject areas for the tasks. It should be no surprise that the first task is a kernel-style "hello world" of sorts. From there, things get progressively harder, in general, and the final task was fairly seriously ... well ... challenging. Building both mainline and linux-next kernels figures into most of the tasks. Many of the tasks also require using the assigned ID in some way. Not surprisingly, kernel modules figure prominently in many of the tasks. As you progress through the early tasks, you will learn about creating devices, debugfs, and sysfs. In addition, kernel coding style, checkpatch.pl, sparse, and how to submit patches are all featured. In the later tasks, things like locking, kernel data structures, different kinds of memory allocation, kernel threads and wait queues, as well as a few big subsystems, such as networking and filesystems, are encountered. It is, in some sense, a grand tour of the kernel and how to write code for it. Which is not to say that it covers everything--that might require a tad more than twenty tasks--but it does get you into lots of different kernel areas. There are even plans to add more tasks once there is a good chunk of people (say 40-50) who have completed the challenge, Little said. At the current rate, that will be several months out. Participant progress The challenge is not a race of any kind--unless, perhaps, you are trying to complete it so you can write an article about it--but at least twenty people have completed it in the three months since it was announced. Given the nature of the challenge, it's a bit difficult to pin down how many are actually actively still working on it, but the statistics on how many have completed certain tasks can give a bit of a picture. Roughly three-quarters of the 4700 who have signed up have never completed the first task. Presumably many of those were just curious about the challenge without any real intention to participate. But it is entirely possible that some of those folks are still working on that first task and may eventually work their way through the whole thing. On the other hand, though, that means that around 1200 folks have gotten a module built and loaded into their kernel, which is quite an accomplishment for those participants--and for the challenge. The bulk of the participants are still working on tasks up through number six and there are less than 100 working on tasks ten and higher. Some of that may be due to some tasks' queues being slower than others. There is manual review that needs to be done for each task, and some tasks take longer than others to review. It might not have been designed that way, but that sort of simulates the review process for kernel patches, which features unknown wait times. Longer queues may also be caused by participants having to try several times on certain tasks, while other tasks are commonly "solved" the first time. Often the tasks are described loosely enough that there are several to many different ways to complete them. Some solutions are better than others, of course, and Little will patiently point participants in the right direction when they choose incorrectly. I found that the more open-ended the task, the more difficult it was for me--not to complete it so much as to choose what to work on. That may just be a character flaw on my part, however. The final task was also a significant jump in difficulty as well, I thought. Documentation One thing that participants are likely to notice is how scattered kernel documentation is. There is, of course, the Documentation directory, but it doesn't cover everything and was actually of fairly limited use to me during the challenge. Google is generally helpful, but there is a huge amount of information out there in various forums, mailing lists, blog posts, weekly news magazines, and so on, some of which is good and useful, some of which is old and possibly semi-useful, and some of which is just plain misleading or wrong. It's not clear what to do about that problem, but it is something that participants (and others learning about the kernel) will encounter. Based on an April 24 status report that Little sent out, there have been some growing pains. It's clear that the challenge is far more popular than was expected. That has led to longer wait times and some misbehavior from the "`convoluted shell scripts that are slow to anger and impossible to debug'" (as they are described on the web page). There have also been problems with folks expecting a tutorial, rather than a challenge that will take some real work to complete. Lastly, Little mentioned some people trying to crash or crack the scripts, which is kind of sad, but probably not unexpected. In any case, the Eudyptula Challenge is a lot of fun, which makes it a great way to learn about kernel development. While it is targeted at relative newbies to the kernel, it wouldn't shock me if even seasoned kernel hackers learned a thing or two along the way. It is self-paced, so you can put in as much or as little time as you wish. There is no pressure (unless self-imposed) to complete anything by any particular deadline--the kernel will still be there in a week or a month or a year. Give the challenge a whirl ... it will be time well spent. ----------------------------------------- (Log in to post comments) Taking the Eudyptula Challenge Posted May 23, 2014 11:00 UTC (Fri) by HIGHGuY (subscriber, #62277) [ Link] I'm not sure if such a task is on there, but it might be good to have e.g. task 20 be a review of someone else's task 10. Reviewing too is part of the process plus it distributes a small part of the reviewing burden... [Reply to this comment] Taking the Eudyptula Challenge Posted May 25, 2014 5:11 UTC (Sun) by geuder (subscriber, #62854) [ Link] Very interesting indeed. (I do patch the kernel at work, but despite of and of course because of following lwn for years I know that there are still far too many things I don't know to dare to send anything upstream. Which partly could be a character flaw of mine seeing some parts, which have made it into the kernel and watching others still trying as we just read an article further up) What surprises me a bit is the use of a pseudonym. Not that I remember any explicit rule in open source that that you must contribute under your own name. Nor that many contributions to open source projects needed to be digitally signed, which could give some evidence that the contributor has presented her or his passport at a key signing party. But generally the rule seems to be that while you can use a fairly cryptic irc nick, people do use their real names when working on open source. [Reply to this comment] Taking the Eudyptula Challenge Posted May 25, 2014 15:57 UTC (Sun) by jake (editor, #205) [Link] > What surprises me a bit is the use of a pseudonym. The only pseudonym in play here is for whoever is running the Challenge. > Not that I remember any explicit rule in open source that > you must contribute under your own name. Actually there is that requirement when signing off on a patch, so participants in the Challenge will need to use their real name when submitting patches. The ID that gets assigned is just used for tracking within the Challenge scripts and such. It is also used in some of the tasks, but not those that are headed upstream. jake [Reply to this comment] Taking the Eudyptula Challenge Posted May 26, 2014 18:55 UTC (Mon) by geuder (subscriber, #62854) [ Link] >>What surprises me a bit is the use of a pseudonym. > The only pseudonym in play here is for whoever is running the Challenge. And this is the one my comment was referring to. For me running such challenge is a form of contribution to an open source project. And I found it astonishing that this contribution is not made under the contributor's real name. > Actually there is that requirement when signing off on a patch, so > participants in the Challenge will need to use their real name > when submitting patches. Yeah, I didn't refer to participants of the challenge, but to code contributors in general, not necessarily only the Linux kernel. I erroneously thought nobody really requires contributors to state their real name, it's just a common practice to do so. Now I checked the facts and the Linux kernel community rules actually require everybody to do so, although they don't enforce it by requiring a digital signature as e.g. in Debian upload. (of course these are different processes, and I'm not saying they should enforce, just illustrating the difference) > then you just add a line saying > > Signed-off-by: Random J Developer > > using your real name (sorry, no pseudonyms or anonymous contributions.) (quoted from https://www.kernel.org/doc/Documentation/ SubmittingPatches) [Reply to this comment] Taking the Eudyptula Challenge Posted May 27, 2014 12:08 UTC (Tue) by corbet (editor, #1) [Link] The kernel project is distributing code from contributors; there needs to be some sort of chain of trust and accountability for that code. Eudyptula is not asking the community to distribute anything, so there is no risk there. If the developer(s) behind Eudyptula want to stay anonymous, it doesn't seem like that should be a problem for anybody. [Reply to this comment] Taking the Eudyptula Challenge Posted Sep 10, 2014 3:07 UTC (Wed) by bicepjai (guest, #98790) [Link] i have not received any challenges yet, i did send a plain text email to the email id little@eudyptula-challenge.org [Reply to this comment] Taking the Eudyptula Challenge Posted Sep 21, 2014 18:29 UTC (Sun) by bicepjai (guest, #98790) [Link ] #eudyptulachallenge I am waiting for reply from server for Task05 results. Its been 3 days ! any advice or suggestions ? [Reply to this comment] Taking the Eudyptula Challenge Posted Oct 21, 2014 20:05 UTC (Tue) by isomorphismes (guest, #99469) [Link] I signed up for the challenge because a friend sent it to me, but haven't completed the first task. I was glad to know what the first task was but wanted to figure out a way to sandbox my work on the kernel. Basically, sending the email took <5 minutes and the research to sandbox my work before starting took >1 hour. Eudyptula kicked me out of the challenge but it's still on my mind as one of a few fun projects when I'm done with my current contract. [Reply to this comment] Taking the Eudyptula Challenge Posted Oct 23, 2014 17:49 UTC (Thu) by lsl (guest, #86508) [Link] Did you sign up recently? Sadly, my request to join didn't induce any reaction. As two other commenters report a similar experience I'm a bit worried the challenge might be dead. [Reply to this comment] Taking the Eudyptula Challenge Posted Oct 23, 2014 18:04 UTC (Thu) by jake (editor, #205) [Link] > I'm a bit worried the challenge might be dead. From speaking with Little recently, I can assure you that the challenge is not dead. It is severely backlogged at times, though. AIUI, sometimes it can take up to two weeks to get a response to a request to sign up. jake [Reply to this comment] Taking the Eudyptula Challenge Posted Oct 25, 2014 17:54 UTC (Sat) by lsl (guest, #86508) [Link] Alright then, that's good to hear. Thank you, Jake. [Reply to this comment] Taking the Eudyptula Challenge Posted Oct 30, 2014 14:06 UTC (Thu) by stevelaz (guest, #22335) [Link ] Thanks for clearing that up! I recently signed up as well and hadn't received a reply yet. Cheers jake :) [Reply to this comment] Taking the Eudyptula Challenge Posted Apr 26, 2015 18:08 UTC (Sun) by ronaldsloot (subscriber, # 82096) [Link] Is this still alive ? I got to task03 but have now been waiting for 8 weeks for a response to that and haven't gotten any yet. Does anybody know how to contact a human instead of the scripts that are behind the Eudyptula Challenge ? Writing to little@ seems to trigger a response from the scripts only. -Ronald [Reply to this comment] Taking the Eudyptula Challenge Posted May 7, 2015 2:21 UTC (Thu) by Panisset (guest, #102132) [Link] I have just got message from little exactly about task03: "That queue is very slow right now :(" PS: To get this response I sent message to little@eudyptula-challenge.org> [Reply to this comment] Taking the Eudyptula Challenge Posted May 5, 2015 21:17 UTC (Tue) by Hell.t (guest, #102276) [Link] Is this challenge still active? Anyone knows? I don't receive any tasks for months. [Reply to this comment] Taking the Eudyptula Challenge Posted Aug 17, 2016 20:45 UTC (Wed) by ronaldsloot (subscriber, # 82096) [Link] At this stage I would recommend learning in another way. The last processed task submission is from the beginning of the year. Clearly the queue is stalled, see an e-mail I got from little when asking about my task that has been sitting in the queue for close to 10 months: "Just to provide some information, you are currently number 132 in line, and the response that is next is from "1 Jan 2016 09:03:47 -0800" so be aware of the potential wait time. To see where you are in the overall challenge, and where the long wait times are, see the current statistics below. Remember, this is not a race, there is no rush, if tasks take a while to be graded, enjoy the time to go do something else. There is a lot more in life other than Linux kernel programming. - little ------------------------------------- Task Number People Queue Length ------------------------------------- Finished 115 20 42 12 19 11 0 18 45 41 17 8 1 16 48 0 15 13 0 14 11 0 13 10 4 12 5 0 11 52 0 10 76 0 09 42 0 08 257 487 07 47 0 06 348 132 05 1042 108 04 681 88 03 417 12 02 990 17 01 1799 211 ------------------------------------- Active: 6059 Duplicates: 4 Removed: 10192 --------------------- Total: 16251 " [Reply to this comment] Copyright (c) 2014, Eklektix, Inc. This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license Comments and public postings are copyrighted by their creators. Linux is a registered trademark of Linus Torvalds