[vox] Fwd: Programmng the Kernel...

Bill Broadley bill at broadley.org
Fri May 6 21:01:57 PDT 2011


On 05/06/2011 08:03 AM, Mikies Runs Baal wrote:>
> THANKS for the heads up.
> 
> I am currently independently working ahead of the course offerings of 
> the community college as I have specific goals in mind. In fact, an 
> emphasis on programming languages is not offered. Unfortunately, JAVA 
> seems to be all the rage atm. And JAVA can't do what I am researching 
> and working toward.

I'm curious what this java incompatibility use is.

> I am trying to get permission for some of the 
> advanced OOP courses to be completed using C/C++.

On the scale of OO I'd consider Java better than C/C++.  I guess it
depends if the class's goal is to teach programming or OO programming.

> There is some 
> resistance though in spite of the fact that these courses were taught 
> using C/C++ not too long ago.

Seems like the C/C++ migration to Java for most coursework was carefully
considered.

> I have been thinking about checking out course offerings at UCD. UCD has 
> quite an extensive extension course offering or did at one time, but 
> even there I may not find courses in the arena that I am focused. 

You might get better recommendations if you mentioned what that arena was.

> I bought a copy of: The Linux Kernel Module Programming Guide, and am 
> reviewing it atm which is quite short, but appears to be an excellent 
> tutorial introduction to working with and programming the Linux kernel. 
> I don't want to screw-up my Fedora laptop, so, I will need to learn to 
> setup a separate boot partition to test the results of my 
> experiementation. I am sort of thinking of using a 100MB (may be too 
> small) ZIP drive or external HDD. I should be able to use GRUB to select 
> a boot from the external drive.

Er, well I wouldn't recommend that at all.  It's rather painful to
login, fire up a bunch of windows, edit kernel source (often referring
to 5-10 different files and/or a few tabs), check into source control,
compile, link, write kernel + initrd, reboot, select new kernel,
potentially fail/panic/scribble over the partition table, reboot, select
old kernel, fsck (because of the panic), login, fireup a bunch of
windows... etc.

Did you want one edit, compile, run cycle per 15 minutes or 2 minutes?
I'd suggest either a virtual machine, or a 2nd machine (with PXE boot)
so you can A) build/run quickly and B) get logging/debugging info from
the test kernel while it's running.  With 2 machines (virtual or
otherwise) there are various ways to debug via serial, network block
driver, or virtual console.

> Obviously, maybe not so obviously, I am into programming, and more 
> specifically, R&D using C/C++ (taking C in the Fall). I'll be taking 
> Assembler next Spring IF it is offered. I expect to transfer at the end 
> of the next academic year.

Very little of the kernel is ASM btw.  I've not seen any numbers
recently, but I'd be surprised if it was even 1%.

> If I am not careful, I could wind up volunteering for the tldp.org in 
> some capacity.

Horror or horrors ;-).

> If you have any tomes that you think might make good "light" reading 
> (LOL), feel free to offer. Did you have a specific text for the course 
> in OS's or was it put together by the professor in his/her syllabus?

Hard to recommend anything without having any idea what your goals are,
what your research is, or interests.  Numerous papers, tutorials, and
HOWTOs have been done for research on schedulers, drivers, file systems,
memory management, interrupt handling, profiling, network stack,
locking/polling/semaphores, and numerous other areas of kernel
functionality.


More information about the vox mailing list