Linked by Thom Holwerda on Fri 23rd May 2008 21:37 UTC, submitted by yourabi
FreeBSD "FreeBSD 7.0 has already been released. If you are a real hacker, the best way to jump in and learn it is hacking together an introductory kernel module. In this article I'll implement a very basic module that prints a message when it is loaded, and another when it is unloaded. I'll also cover the mechanics of compiling our module using standard tools and rebuilding the stock FreeBSD kernel. Let's do it!"
Thread beginning with comment 315467
To read all comments associated with this story, please click here.
Some small notes
by Doc Pain on Fri 23rd May 2008 23:04 UTC
Doc Pain
Member since:
2006-10-08

First of all, I'd like to state that the article was interesting to me and it was written in an understandable way. I'm a (nearly) fulltime FreeBSD user, so some minor revisions came into my mind when I read the article. Here they are:

The mentioned command sequence

cd /usr/src/sys/amd64
cp GENERIC CUSTOM


won't work. The author writes "If you are on an x86 based machine, the kernel is located in the /usr/src/sys/i386 directory. [...] The kernel configuration file is located in a directory called conf." correctly, but misses to add the conf subdirectory to his commands. They should be:

# cd /usr/src/sys/amd64/conf
# cp GENERIC CUSTOM

For the AMD64 arch, /usr/src/sys/amd64/conf would be the correct path.

You can shorten the path, too, because there's a symlink /sys pointing at /usr/src/sys, so /sys/i386/conf is a valid cd parameter.

Side note: The author states that these procedures work fine with the 7.0-RELEASE kernel (stock kernel); be sure to build kernel and world if you updated your sources before, because kernel and world should be the same version (e. g. 7.0-RELEASE-p1).

If you want to read up some more about this topic, don't miss the high quality FreeBSD handbook: http://www.freebsd.org/doc/en/books/handbook/kernelconfig.html - the author mentions this source, too.

An interesting starting point, after all. I'm still thinking about writing a KLD module to read from a Sun type 5 keyboard attached to the serial port... say hello world to /dev/skbd0. :-)