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 look at corefiles using gdb – Part 2

The interested reader can refer part 1 of the current article here – <How to look at corefiles using gdb – Part 1>. Having looked at setting the core file path for Linux in the previous article, let us run the sample program to obtain a Linux corefile. We shall create a sample program which […]

How to look at corefiles using gdb – Part 1

The Linux Operating System dumps the exception generated in a program as a core-file. Before we run the sample program to analyze the dump generated by the linux system – we need to check whether the Linux system settings for core files is set properly. On Ubuntu – Core file size is set to Zero. […]

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 […]

Writing A Simple Linux Kernel Module

The first example that is always depicted in understanding any coding language (or kernel programming in our case) is to write the hello world example. Let us write a simple kernel program which outputs ‘hello’ and ‘goodbye’.  Below is the sample code for the driver – it has comments placed to explain what each line […]

Monolithic Linux Kernel

One would have read this statement in many books/internet sites or heard from different people – “Linux is a Monolithic Kernel”. What this means is that the entire operating system (which includes the device drivers, file system, IPC) are running in the kernel space. In a Micro-kernel architecture most of the OS services are running […]