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 2

The interested reader can peruse the first part of this series here – <An understanding of memory layout in C – Part 1> From the previous article it was seen how the different layers of memory are aligned for a C program that runs on a system. A “C” Program is  provided below which progressively […]

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