Fedora 9 'git' source kernel ??

Patrick O'Callaghan pocallaghan at gmail.com
Mon Jul 14 18:50:43 UTC 2008

On Mon, 2008-07-14 at 13:59 -0400, William Case wrote:
> Hi Patrick
> On Mon, 2008-07-14 at 12:25 -0430, Patrick O'Callaghan wrote:
> > On Mon, 2008-07-14 at 12:09 -0400, William Case wrote:
> > > Hi;
> > > 
> > > Just checking that I am doing this correctly.
> > > 
> > > I want to start exploring the Linux kernel.  (I realize when the time
> > > comes I should ask any in depth questions elsewhere -- but for now I am
> > > just looking for start help.)  I have 'git' installed.  I am ready to
> > > download the Fedora 9 source.  Members of my local LUG have advised me
> > > that I should be sure to download the 'git' kernel.  They mostly use
> > > Debian.
> > > 
> I understand git is a version control system for linux.  Many members of
> my local LUG are Linux programmers who use git.  I am trying to catchup
> without being too competitive.
> I was also going to install scope -- in the hope that would let me bop
> around without too much difficulty.  Major questions I will reserve for
> the kernelnewbies list.
> > > I don't see anything in the source repo that might equal a 'git' Kernel
> > > -- just the regular ordinary source rpm; kernel-2.6.25-14.fc9.src.rpm
> > > 
> > > Should I download that or is there somewhere else an animal called or
> > > set up as a 'git' kernel??
> > 
> > Bill, 'git' is a version-control system used in the kernel development
> > process (and other places), so the "git kernel" means some version of
> > the kernel source as released by kernel.org, i.e. Linus and friends.
> > 
> I was hoping to substitute a fedora kernel.  That is, Kill two birds
> with one stone.  Learn some basics about my way around the kernel and
> git; and, be able to relate it to what is running on my machine.  A time
> will come when I will want to use it in a virtual machine (borrowed
> lingo -- I don't really know what I am talking about yet re: virtual
> machines).
> > OTOH the Fedora kernel is a git kernel (usually a minor version or two
> > behind) plus Fedora patches. You can use yum to install it for your
> > reading pleasure without having to understand anything about git.
> I have used SVN a little bit, so I am not completely new to version
> control systems.  One of the LUG members looked up the Fedora kernel and
> as you say, said it was near enough to the latest version "to make no
> never mind".
> Let me put it this way.  Starting something new is when the major screw
> ups take place.  You can introduce yourself to endless grief because of
> starting stupidly. My experience with computers and programs so far has
> been that I can handle the details; its starting and stopping that is
> the hard part -- kind of like learning to drive a car.
> If you have a better suggestion on how I should get started, I am all
> ears -- sincerely.
> My goal is to examine and get a feel for the C code for some of the
> basic services provided by the kernel -- I don't anticipate learning all
> 12 million lines of kernel code.  I thought I would look at the major
> 'struct's and follow the pointers and constants definitions in the
> various struct fields from there.

Bill, I'm not too sure of your technical background so it's hard to make
recommendations. I used to teach operating systems many years ago, and
there were some things that always caused difficulty for students,
because they don't arise in "normal" programming:

1) I/O, especially interrupts. This implies at least a basic
understanding of machine architecture.

2) Virtual memory systems and how they relate to real memory.

3) How multiprogrammed systems manage lots of concurrent processes with
seamless switching between them. The real nitty-gritty of how this is
done is what separates the sheep from the goats. I regard it as the
"pons asinorum" of OS theory.

None of this needs to be tied to the exact details of Linux itself, and
in fact you can learn a lot from starting with a simpler system. In that
sense, John Lyons' classic commentary on the Unix 6th Edition source
code is one the best books ever written on this topic.

[Fellow oldies will recall Ken Thompson's famous comment at the start of
the process dispatcher function (Line 2238 in Lyons' book): "You are not
expected to understand this". :-]


More information about the fedora-list mailing list