Analysing the Stream Socket connection

In the current article, we try and analyze what occurs at each stage of the Stream socket connection example.  The Stream Socket example code for IPv4 is provided at this link here. The interested reader can look at the code on his linux shell and try and follow the actual connection establishment here.  The initial […]

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

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