[svlug] Code walkthrough notes
akkana at shallowsky.com
Fri Nov 9 17:22:47 PST 2007
> On Nov 9, 2007 12:13 PM, Paul Reiber wrote:
> > Within a few months, the group will be prepared and knowledgeable
> > enough to be guided
> > by 'domain experts' both from within our own ranks and from the
> > outside world.
Julie Hill writes:
> I know you mean well and I appreciate all that you're doing, but I
> find this disappointing and condescending. I can't speak for others,
> but I was ready on Tuesday to seriously look at the kernel internals.
Yes! Julie, you hit the nail on the head.
The discussion before the meeting was all about understanding
kernel code, and working on study projects in between so that we
could really understand the issues and delve into details.
> Would it be possible to pick a topic and put out a call to the members
> for people who can speak on that on Tuesday? It doesn't have to be
> perfect. A team of people could speak initially to take the pressure
> off any one individual.
> One idea that someone mentioned to me was that we could have one
> meeting where a specific kernel topic was presented and homework
> assigned. Then the next few meetings after that would be follow ups to
> cover additional details, time for discussions, question and answer
> sessions, help with homework, etc.
I'd love to see a series like that. Speakers when we can get them;
then for meetings where we don't have a speaker lined up, what about
a "study group" meeting? Assign a specific topic ahead of time --
we can discuss on the mailing list details like what code is most
relevant and where to start.
Then at the meeting, maybe we could sit in a group and discuss what
we found. "I didn't understand the part around line 597 where it
doesn't start init if kx is zero. Did anybody figure out what it's
doing there?" "Sure, it's doing [explanation of kx] but what I
wasn't clear on was how this routine gets called in the first
place -- can anybody give an overview?" Not a presentation but
a series of discussions and mini-presentations.
I don't know if anybody else is interested in the idea, but
if people are, we'd need a topic. I've seen lots of lists of
topics, but we need to pick just one.
So here's an idea. Lots of people seem interested in the boot
process (me too). In 220.127.116.11, I see a directory at the top level
called init. It's pretty small: it contains a main.c, a bunch of
files with names starting with do_mounts, a couple of files dealing
with initramfs, calibrate.c and version.c -- 9 C files in all
(and two of them are tiny, around 50 lines).
That might be a nice bite sized piece to get us started. Most of
us probably know a little bit about filesystem mounting and initrds
already, but I bet there's lots to learn from looking through this
code to see what the kernel actually does. If it turns out to be
TOO easy and you get bored, go investigate grub and how the MBR
works, or techniques for making initrd images, and share that
with the group on Tuesday.
So how about it? Anybody interested in studying the init/ directory
this week, then getting together in person to discuss what we learned
and ask about what we don't understand?
And are there any kernel experts in the group who already know
a little about the boot/init process and would be willing to be
there to guide us if we go astray?
More information about the svlug