Re: [Ksummit-2008-discuss] Fixing the Kernel Janitors project
From: Lars Noschinski
Date: Sat May 31 2008 - 15:26:57 EST
* Jiri Kosina <jkosina@xxxxxxx> [08-05-31 11:48]:
I fully agree, but my impression is that this really is not going to be
easy. Fixing bugs definitely is a good way to start kernel coding -- it
forces you to understand the internals of the source, get used to the
coding style by reading the code, etc. Unfortunately, it's simply not very
attractive for newcomers.
For example -- I am leading a seminar at university, oriented at linux
kernel internals. I provide the possibility to students either to
- write some stand-alone interesting kernel project
- fix a few non-trivial bugs in kernel bugzilla
- chose any part of a kernel, learn how it works, and present this to
other seminar attendees
The feedback I often get from students (and these guys are studying
computer science) is
- writing some wholy new interesting kernel project is usually too
complicated (both coming with an interesting idea for a project, and
doing the coding itself)
- fixing random bugs from kernel bugzilla is boring (spending 10 hours
looking for missing '=' doesn't really attract them)
So in overwhelming majority of cases, they just chose the presentation.
From my own experience: Last semester, I participated in a "Linux Kernel
Hacking Lab" which involved some smaller tasks (write a module which
presents a circular buffer in /proc; the same as char device; write
a very minimalistic file system, extend it to do something resembling
journalling, ...) and a larger project.
The first two tasks were easily done by reading Linux Device Drivers;
but after the file system task (2 weeks), more than half of the group
dropped out; probably because to get this task done you needed to dig at
least in the minix code.
The project I was later involved on was writing a file system, which
stores blocks with the same content only once. In a two months period
(with other lectures to attend to), we managed to produce such a thing;
but it was very unreliable (which reminds me, I am supposed to publish
the results of this project here)
Most problems resulted of a combination of not enough documentation
(filesystem/page cache/block device interaction) and "not digging deep
enough, so the kernel does not really do what we expected".
So, the code produced in this learning phase is not usable; but I
learned a lot from this. Restarting from scratch now would probably
yield some working code.
At least, know I understand why Linux has such a high rate of changes ;)
All I want to say is that I could very well imagine that a lot of
newcomers will find "hey, feel free to crawl through bugzilla and fix
whatever you are able to fix" very non-attractive.
Not that I have any better idea right now, though.
I probably would not have attended a lab titled like this ;)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/