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

An understanding of memory layout in C – Part 1

This article tries to discuss the basics of memory layouts in C.  When a C file is preprocessed, compiled, assembled and linked – a memory layout of the code/data/stack/heap area is generated. The C program memory layout is depicted below FIG COURTESY:https://en.wikipedia.org/wiki/File:Program_memory_layout.pdf The different sections are .text segment – code section – the C code […]