LinuxCon

I attended LinuxCon + ContainerCon last week that was held at InterContinental Hotel Berlin. It was a great experience to attend such a conference and meet mentors: Julia Lawall, Daniel Baluta and Greg Kroah-Hartman and other alumni Outreachy interns.

On the first day Jim Zemlin started the conference with the keynote about Linux kernel development and future of open source. Jonathan Corbet gave a very interesting talk about importance of documentation and how ca it be improved. After morning talks Nithya Ruff hosted Women in Open Source Lunch where women could network and discuss important topics about women in tech, diversity and inclusion. After that was Outreachy panel where Julia Lawall first gave an introduction about what the Outreachy program is about and then each of us alumni interns presented our projects. I spoke about my work splitting the current driver mxs-lradc into MFD with adc and touchscreen part. At the end of the day was a party for speakers and sponsors at roof floor of Weekend Club, and it had an amazing view of Berlin.

On the second day Paul McKenney gave a talk about Linux-Kernel Memory Ordering where he presented work on automated tool to analyze memory ordering in C code. After that I attended Daniel Baluta‘s talk about lguest, which is a a small hypervisor for running Linux under Linux on x86 architecture. That evening was a party for 25 years of Linux that was held in Charlottenburg palace.

On the last day, before the conference begun, I went for a bike ride organized by the Linux Foundation (at 7 in the morning!). Our group had a guide and we visited the places near by. I arrived just in time for Keynotes and the one that stood out the most was by Thomas Di Giacomo

I recommend watching it: https://www.youtube.com/watch?list=PLbzoR-pLrL6ovByiWK-8ALCkZoCQAK-i_&v=ZMkmtz3CUCI

I attended several talks after keynote:

After the conference I felt more motivated to continue participating and contributing to Open Source, I highly recommend going to LinuxCon, and hope that I could go to another such conference soon.

Linux Staging Tree cleanup

 

What is Linux Staging Tree

Linux Staging Tree (Staging) is a directory placed under drivers/staging that is used to hold stand-alone drivers and filesystems that are not ready to be merged into main portion of kernel for various technical reasons.

Staging cleanup

My first task was to see if there are drivers in staging directory that need to be deleted or if there is little work to be done so they can be moved to the main part of kernel.

I used git history to see if someone was working on those drivers and making “real” change or just simple fixes like coccinelle, sparse, smatch or checkpatch fixes. So I first sorted drivers into 3 groups based on work flow on these drivers:

  • Actively worked on with “real” changes
  • Actively worked on with style cleanups
  • Not actively worked on

Then I looked up TODO lists (list of things that need to be done in order to move driver out of staging) of drivers and sorted them by how much is done in TODO :

  • TODO not completed
  • TODO almost completed or completed
  • No TODO

From those two sorted lists I concluded which drivers might be deleted or need a little work to be moved out of staging:

Delete:

  • rtl8192e – since there was no support for this driver in the main part of kernel, it will remain in staging.
  • ste_rmi4 – same as rtl8192e.
  • gs_fpgaboot – I ask maintainers and cc-ed staging list on mail but I got no response, so I don’t know if that means no one works on that driver and it can be deleted.

Move out of staging:

  • panel – I ask on mailing list what needs to be done and sent patches for the driver based on suggestions by other developers. Now it’s ready to be moved out of staging
  • wlan-ng – I was told by maintainers that a lot of things needs to be done, so it will remain in staging.
  • skein – There are still checkpatch warnings and I think one TODO task (add/pass test vectors), but most of the work is already done.

Outreachy

I’ve been accepted into the Outreachy (round 11) as Linux Kernel intern. I’ll be working under mentorship of Greg Kroah-Hartman on staging drivers. The goal of the internship is to select one (or more) driver in staging tree and help get it out of staging.

What is Outreachy?

Outreachy  (previously the Free and Open Source Software Outreach Program for Women) is a program designed to help people who are underrepresented in free and open source software by providing them with paid 3 month internship under the guidance of a mentor.

Originally this program was only destined to women, and now it’s open to: internationally to women (cis and trans), trans men, and genderqueer people. Additionally, it’s open to residents and nationals of the United States of any gender who are Black/African American, Hispanic/Latin, American Indian, Alaska Native, Native Hawaiian, or Pacific Islander. And in future it will continue to expand to include as much underrepresented groups of people as possible. For more information go here

If you don’t belong to any of the groups mentioned above and you want to get involved with Linux Kernel, consider some  other options, such as:

Join kernel newbies mailing list and irc channel

Kernel newbies mailing list is list designed for people new to Linux Kernel programming. You can get help from experienced kernel developers as well as other newbies. I recommend first checking mailing list archive if you have some obvious questions like “How do I start with kernel development?”, because it was probably already answered several times.

Irc channel is for communicating with others in real-time. You can ask your question here as well, but don’t expect it to be answered right away. Sometimes no one knows the answer or can’t help you right away. So just post a question, wait and be patient.

Send patches to LKML

A great way to learn is to get feedback from others. To learn how to send a patch to a mailing list there is a very good tutorial FirstPatch.

Join Eudyptula challenge

This challenge is series of programming exercises for the Linux kernel consisting of 20 tasks and it’s done via e-mail. It is very important to do these tasks by yourself and don’t ask publicly for help on kernel newbies mailing list and irc channel or you will be disqualified. I’m also taking the part in challenge and I finished 12 tasks. It was both fun and challenging. The only drawback is that review of a task can take a while, sometimes more than a month. For more information go here.

Apply to Linux Foundation scholarship

This scholarship cover the expenses for one of the Linux Foundation training courses to be chosen by each recipient, representing thousands of dollars in value. In 2015 the Linux Foundation offered two scholarships in each of the following seven categories:

  • Linux Newbies
  • Teens-in-Training
  • Whiz Kids
  • Women in Linux
  • SysAdmin Super Stars
  • Developer Do-Gooder
  • Linux Kernel Guru

More information here.

Read books

To get more insight into kernel’s working following books are great:

  • Linux kernel development by Robert Love
  • Linux Device Drivers by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman