Linux – Proc File system – Part 2

The  interested reader can check the part 1 of the series at the link below https://www.hitchhikersguidetolearning.com/2020/11/02/linux-proc-file-system-part-1/ Let us look at some of the outputs of different files in the “/proc” folder. /proc/meminfo – This provides statistics about memory usage on the system. Snippet shown below /proc/version – This string identifies the kernel version that is […]

Linux – Proc File system – Part 1

The Proc file system is interesting in the sense it provides information on various processes and kernel data structures dynamically. It is loaded at boot time to a mount point termed “/proc”. The proc filesystem is a pseudo/virtual file system. If you check the file size of any file in the /proc directory – the […]

Compiling the Linux Kernel – Part 2

The interested reader can refer part 1 of this series at the link below https://www.hitchhikersguidetolearning.com/2020/11/02/compiling-the-linux-kernel-part-1/ Now that the Linux 5.9.1 kernel code is downloaded and untarred, traverse to the linux-5.9.1 folder and open the “changes.rst” that contains the minimal requirements needed to compile the Linux kernel. The “changes.rst” will be present under the folder “Documentation/process” […]

Compiling the Linux Kernel -Part 1

Many occasions, we wish to develop our own modules, look into various aspects of the Linux kernel code or need to develop our own version of our kernel for specific purposes. This article tries to cover the topic of compiling the Linux kernel code. Some requirements that will be needed Linux operating system to compile […]

Posix Threads – An Introduction

Historically, many independent thread implementations by different hardware vendors were present. This caused portability between different Hardware problematic and a common interface was needed to be standardized. The IEEE POSIX 1003.1c  standard was a step in this direction. Implementations that follow the above standard are termed as POSIX threads (or Pthreads in short). The below […]

Advantages and Disavantages of Threads

Threads have a lot many advantages and a disadvantage as well. The article tries to outline the advantages and disadvantages of using threads in Linux. ADVANTAGES Parallelism and blocking I/O – With Most multi-core systems, threads provide a means of achieving parallelism. If a particular thread is waiting for I/O, another thread can still continue […]

What is Multi-threading?

The Concept of running multiple instances of a certain process can be termed as multi-threading. A Process is the basic block of a running program, the unit of execution of a process is a thread. A process with a single unit of execution is termed a single threaded process and a process that runs more […]

Threads in Linux

A thread is unit of execution of a process. A process can execute multiple threads. The Process that executes only one thread, it is termed as a single threaded process. Multiple threads can be executed by a process and can execute concurrently. Parallel execution of threads is possible on a multi-processor system.   A depiction of […]

Netlink Protocol Families

The Netlink protocol family has many protocol families. Some of them have been deprecated and some are presently as of the date of this article present in the Linux Kernel. The list (as of Linux 6.13.2) provides the reader in knowing the different protocol families available (I do not claim to know what each of […]

Netlink Message Macros

The interested reader can refer the netlink socket structures in the below two links Netlink Socket structures – part 1 Netlink Socket structures – part 2 The Netlink Message construction uses a number of macros to create the complete netlink message. The below Netlink macros provide information on how the netlink message is constructed. int […]