Saturday, December 20, 2014

Eudyptula, the little Linux chalenge

I grown up in the 80 with the coming of the PC era and I began my computer learning in the 90. So it was natural for me to become a Microsoft Windows disciple. As the years goes on I learned all the stuff needed to become a embedded system engineer (I still have a lot to learn ;)) and my career lead me to Windows CE. As Microsoft was the incontestable leader of the computer world it was logical as a career path to specialize in their technologies. I was always a fan of the open source movement and I even tried FreeBSD and Linux, but those experiences was only for fun and I did not think that it was worth learning. But came the 2000 and some new small player began to popup, like Google, and over the last 15 years the world shifted to a open source and power saving world with the advent of the mobile and massive server warehouse. I must admit that as a middle old guy I did not see it coming and I was a little bit late when I began looking by the window to find a new and very fun world. It began with one of my passion, home automation and the EventGhost and XBMC softwares. Those softwares lead me to learn Python and finally to assist the Pycon 2014. There it hit me like as a rocket in the face, the world now run on Linux and open source software and I must quickly began learning Linux to not become an old irrelevant engineer that cling to a dying world.


My first move was to install Ubuntu and build the Kernel from source. This was a fun and gratifying experience to build and run my Kernel, even though it is very easy!  But that was only the beginning and I soon dived into the documentation. I even tried to fix the Broadcom wireless driver so that I can use it with my compiled driver. I rapidly discovered that developing with Linux was very different then working with Visual Studio. As I continued to learn Linux I stumble on the Eudyptula chalenge. For me it was a great opportunity to learn how the Linux internal is working and to do my job on it. The Eudyptula chalenge is a series of 20 small task that will lead you to learn the Linux Kernel development process and hopefully, for the community, become a contributor. The chalenge require that you know how to program in C and I think that it is enough if you know how to learn. Knowing how to use Linux is not even a requirement because as I started my knowledge of it was pretty much the ls and cd command. OK I must admit that I am not a novice to kernel development and using computers but all those experience is mainly on Windows. So far I completed 50% of the chalenge and I even had the chance to send a patch to Greg Kroah-Hartman :) I found that the tasks so far have been relatively simple with some task requiring a lot more time to learn about how the system is working, but in the end it payed a lot for future tasks. I must admit that what I found the most difficult is the transmitting process that is a little bit intimidating but from what I learned is very efficient and also I found the reviewer to be polite and helpful, contrary to what I eared on the Linux reviewers. 

Overall I found the chalenge a fun an very easy path to learning the kernel development process. There is not very much anything bad to say about the chalenge except maybe the longer time it take for some reply, I waited 8 weeks for task 9, and sometime there is some tasks that I found difficult to understand what exactly is needed (this can be because my main language is French ;)) But as all the people working for this chalenge are doing it on their time, there is nothing to complain about and for the longer reply it only give me more time to work on my Raspberry PI or Intel Edison projects. On the good points I can say that it is an easy way to begin participating to the kernel development. Before that I tried to work on the Chromium project, but I did not do anything because I was a little bit lost on what is really needed to do, but with the Eudyptula chalenge it like if someone is mentoring me. I also very liked the review process where it helped me produce better code. In the end I am looking forward to next tasks and it is becoming a lot easier to do it because my understanding of Linux is better and I lose less time just to control the OS. So I recommend the chalenge to anyone that wish to learn about the Linux kernel or maybe also with open source projects.

No comments:

Post a Comment