Passing Data to a kernel module – module_param

A kernel module is loaded into kernel space. In case any specific value needs to be sent to the Kernel module during initialization or  dynamically at run-time, a method needs to be provided which will achieve the same. One such method to achieve the above requirement is the “module_param” macro. The “module_param” macro takes in […]

The Next Step in writing a device driver for Linux

Having understood on how to create a simple Kernel module here – <Writing a Simple Kernel Module>, we shall try and look at how Linux characterizes the different Kernel driver types. The most commonly seen device drivers are Character device drivers Block device drivers Network device drivers We shall look at platform drivers, miscellaneous drivers […]

How to debug a Program with gdb – Part 2

The Previous article <How to debug a Program with gdb> described the use of running gdb on a sample program. In this article, we shall understand how to print variables, access memory and run a few gdb commands to access stack gdb has a lot many commands and the interested reader can access the different […]

How to debug a program with GDB – Part 1

This article describes how to run gdb with a simple program example. gdb expands to GNU Project Debugger. It is a very powerful tool to debug programs and to investigate Core dumps generated by different programs. The Article tries to setup a reader to start experimenting with gdb via a sample program. Sample Program compile […]