In part I, we learnt about the memory corruption and the probable causes. Presently, there are plethora Linux tools available to combat the issues of memory corruption. Such Linux tools assist a great deal in detecting the memory corruption and resolving them. In this article we will cover 3 popular open source tools available for […]
Every process in any operating system would use memory to store its code and data. Same is the case with processes in Linux. However, the onus is on the programmer to see if the memory is being properly used or not. This is essential, as memory issues lead to copious bugs and bizarre behaviours. As […]
Back in 2012, after my article on Linux ELF Virus was published in Linux Journal, I was curious to come up with a trigger point for this virus. I mean what would compel a Linux user to execute it for the very first time? I thought about it many times but could not come up […]
When we talk about projects in C/C++, or any other programming languages, it is pretty common that as the project advances, the lines of code increases, and hence increases the number of source files in the project. Although, as a developer, it is always intended to make the sources more and more organized, predictable and […]
While designing a simple C program or a full fledged command line application, it is pretty usual to have a requirement for arguments to be passed while running the executable/application. These arguments are known as command line arguments. These parameters govern the behaviour of the program to some extent, as these are the inputs based […]
In this pacing world, time plays an important role in every aspect of Life. Even in industries like embedded, automotive etc time plays a very important role. Seems like everyone is working just to minimize this parameter called time. If we talk about software industry, here too, minimising the time complexity is the most prominent […]
Everything in Linux is a file. This is a common phrase related to Linux. As and when one gradually learns Linux, he/she gets to understand the fundamentals behind this phrase. In Linux even hardware devices are recognized as files. These are known as Linux device files or special files. Here in this article, we shall […]
One of our previous article (here) discusses the concepts and theory of Linux Kernel Modules. We became acquainted with the LKMs as a compiled object code that gets linked to the kernel when loaded and gets unlinked on unloading. Now, its time to delve into the programming part of it i.e. how to develop them. […]
Logging information is an essential and most vital element of programming. Adding logs is one of the most popular debugging technique. In Linux C programming logging mechanisms differ in case of user level programming and kernel programming. Here in this article we will discuss all aspects of Linux Kernel Logs.
Linux kernel is the core of any Unix-like operating system which provides basic functionalities and working model of the operating system. However, what if one wants to add a new feature, for example, supporting a new device?