Linux kernel data structures

tux_compKnowledge of the data structures used in the Linux kernel is a prerequisite to play around with the kernel source code. To know more about the various data structures used in the Linux kernel try the following links –

udev: Modern Linux Device Management

tux_compThere has been a change in the way devices are managed on Linux since kernel 2.6. Instead of having static device nodes, devices are managed dynamically in the userspace since the introduction of udev. It also provides persistent device naming irrespective of the order in which devices are connected to the system. A good article on various aspects, characteristics and advantages of udev.

Writing Linux daemon processes

tux_compA daemon is a program on Unix-like operating systems that runs continuously in the background (though not necessarily consuming heavy memory and CPU all the time), rather than under the direct control of a user, waiting to be activated by the occurrence of a specific event or condition. Examples of daemons are the pulseaudio sound server or X11 display server. Writing daemons on Linux is quite easy. Find some good tutorials those explain how to write daemons below:

Write Linux device drivers

driversSome good tutorials on how to write Linux device drivers (some are old but good for concept-building nonetheless):

The Free Electrons LXR (Linux Cross Reference) for referring the kernel source. However, I prefer ctags and cscope for lengthy source-code browsing sessions.