Skip to main content

Linux Kernel Module - Kernel Edited

Linux kernels are monolithic by nature. They have a set of drivers already preinstalled on dispatch. 

However there can be new devices such as a WiFi Adapter or  Bluetooth Speaker which cannot be paired to the operating system. Now we have two solutions for this. 

Either start from scratch, edit and compile the entire kernel. This can be time consuming as even a high configuration system can take 15 to 18 minutes just to debug. For a business this is not viable, unless paid by the hour. 

The other is to write a specific module (driver) which can be inserted into the kernel, during runtime. The whole process will take less than 5 minutes. This module is known as Linux Kernel Modules or LKM.

 

Uses

LKM are used for creating new device drivers or file systems and network packet tracking. The latter is particularly useful in developing firewalls, Intrusion detection system (IDS) or Intrusion prevention system (IPS).

 

Prerequisite

To create a module, we need to install the Kmod package. This contains the needed libraries to execute 

  • make (compilation)
  • insmod/modprobe (module insertion)
  • rmmod (module removal).


All these commands run in privileged mode 


Hello World

The beginner program is hello world. Open the text editor and save the file as .c extension. The code is as follows:

 

#include <linux/init.h>

#include <linux/module.h>

 

MODULE_LICENSE ("GPL");

MODULE_AUTHOR("Your Name");

MODULE_DESCRIPTION("This is a test module");


static int start_init (void)

{

    printk(KERN_INFO "Hello World\n");

    return 0; 

static void end_exit (void)

{

    printk(KERN_INFO "Exiting module"); 

} 

 

module_init(start_init);

module_exit(end_init);  

 

Explanation

Here there are two functions. The start_init is used to insert the module while end_init remove the same from the kernelThe topmost code contains the header files and developer details. 

The make command is used to compile the code and insmod to insert the same. 

 

End Note 

Another advantage of LKM is that even if there is an error within the module, we can separate it from the kernel. This prevents the whole system from shutting down due to a glitch. 

  

Comments

Popular posts from this blog

Man In The Middle Attack - EavesDropping in the Digital World

    This is a term used to describe a cyber attack where a hacker acts as middleman, during data transfer between user and an application. The app can be a financial or an E commerce website, Software as a Service (SaaS) etc. The hacker can intercept data passed via the browser to the website, and collect sensitive information such as account and credit card details, user login etc. To put it into context, it is like a postman who reads all the letters addressed to you, then reseals the same, on delivery. This way no one suspects a foul play.   Interception This is the first phase of the attack. Here the hacker establishes a connection with the target device whether a PC, Laptop or Smart phone. This is done   through various methods   like   Free WiFi  : Here a WiFi hot spot is set up  which is not password protected. When a user logs in to the network, they are in essence connecting to the hacker's system. Now any data transfer occurs via this co...

Internet of Things-Connection Redefined

  Imagine driving home after a long day of work. En route the car instructs the residence to automatically turn on the lights, prepare a hot bath, and download the latest Netflix series. While this may seem like a line from a SciFi script, the future is more realistic than ever. Welcome to the world of IoT or Internet of Things. Though not as popular as its famous counterpart, Artificial Intelligence, its penetration into the consumer market is indeed extensive. What is IoT...... It is the term used to describe a   device, or set of devices which are connected to the internet,   and also communicate with each other. They can share data obtained from various sensors to a central hub, analyze it using  AI, and take appropriate actions. For example, a smart thermostat can read the room temperature, analyze the same, and adjust the heating system without any human intervention. Another example would be a smart camera which provides video footage when a movement is detect...

Bluetooth - You are Connected

       We are entering the era of Internet of Things (IoT) devices, where each device connects remotely to one another, and the world wide web. This makes them smart in the way of integration to Artificial Intelligence, Machine learning and Data analysis. There are number of network protocols that facilitate this peer to peer communication be it ZigBee, Matter etc. More on that later.    What is Bluetooth  Invented  in 1994 by Ericsson and widely used, Bluetooth allows for short distance communication, within 10 meter radius. The data speed is between 1 Mbps and 3 Mbps. The bandwidth is in the range of 2.4 GHz to 2.485 GHz.   Frequency Hopping Unfold Spectrum This is the underlying tech used in Bluetooth. Data signals by default have low frequency, and high bandwidth. This makes them prone to distortion, affecting long distance transmission. Also the receiving antennas  have to be large in size which is a limitation for mobile phone...