Trying to understand kernel

Hi all,

I'm a user and a programmer of UNIX based systems (mainly FreeBSD and Linux).

I have never programmed or tried to fully understand the kernel layer. I haven't a special propouse for learning it, but I'd like to. Can anyone suggest me books, documentation or examples that may help me to understand kernels? I am interested to both Linux and FreeBSD kernels.

Thanks for any help and sorry for my poor English,
--mghis

The following are highly esteemed:

For the Linux kernel's interface (which is mostly POSIX compliant):
The Linux Programming Interface: A Linux and UNIX System Programming Handbook by Michael Kerrisk

For Linux kernel internals: Linux Kernel Development by Robert Love

For a tour of FreeBSD's guts (as of 5.x branch, which was a large change from 4.x and prior releases): The Design and Implementation of the FreeBSD Operating System by long time Berkeley hacker/historian McKusick and Neil.

Don't confuse that last one with The Design and Implementation of the 4.4 BSD Operating System which documents an older system (although it's useful for would-be NetBSD, OpenBSD, and DragonFlyBSD kernel hackers).

Tanenbaum's Minix-centric operating system textbooks are also highly regarded, though they are neither Linux nor FreeBSD related (although, iirc, Minix played a part in Linux's origins).

And, finally, if you really want to go old school, there's Lions' Commentary on UNIX 6th Edition. It's a much simpler kernel, which has its advantages for learning the basics.

Regards and good luck,
Alister

1 Like

Thanks a lot, Alister!