Kernel

As Linux becomes more mature, it is much less challenging to just use Linux, which used to be remembering tricky commands and finding rare apps to do probably common things. The new distros of Linux feel more and more like a convenient Window or Mac OS, containing all tools one might need to use on daily basis — Surfing, blogging, word processing, chatting, Remote Desktop, etc. Now maybe it's time to get start on a bit more challenging stuff — write some kernel extensions or modules to do something new or cool.

Thanks to the new updates in Linux Kernel 2.6, now the Linux system is both good for small embedded systems, and large servers. It features the well-known O(1) scheduling algorithm, the preemptive kernel, optimized virtual memory management, and more powerful file systems and hardware support.

These advances got me interested in Kernel programming, and thus I will collect some information which I think very useful here.

I can't claim that I am a kernel expert yet, but I think I did find it quite easy to pick it up. Here is some resources I found useful, and can quickly de-mystisfy the somehow scary world.

Practical tour to Linux Kernel

I made a separate page documenting the tours I made in exploring the Kernel.

Click -= HERE =- to open.

Example programs from Linux Device Drivers (updated for Linux Kernel 2.6.17)

Source tarball: ldd-examples-kernel-2.6.17.tar.gz
Individual examples: View

Websites

Linux Journal: http://www.linuxjournal.com/
KernelTrap (Linux news): http://kerneltrap.org/
Linux Gazette (Linux made more fun): http://linuxgazette.net
Linux Headquarters (Source/Docs): http://www.linuxhq.com/
Android Kernel Group: http://groups.google.com/group/android-kernel

References

Overview

Kernel internals

Devices drivers

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License