Fundamentals 27 min read

Unlocking the Linux Kernel: A Beginner’s Guide to Architecture and Modules

This article introduces the Linux kernel, explains its purpose and different architectures—including microkernel, monolithic, and hybrid designs—covers where kernel files reside, describes kernel modules and their management, and shares practical learning strategies and resources for newcomers.

Open Source Linux
Open Source Linux
Open Source Linux
Unlocking the Linux Kernel: A Beginner’s Guide to Architecture and Modules

01 Introduction

This article explains what the Linux kernel is and uses several images to illustrate its role and functions so readers can quickly understand and recognize the kernel.

With over 13 million lines of code, the Linux kernel is one of the world’s largest open‑source projects, but what exactly is a kernel and what is it used for?

02 What Is a Kernel

A kernel is the lowest‑level replaceable software that interfaces with computer hardware. It connects all user‑mode applications to physical hardware and allows processes, often called servers, to communicate via inter‑process communication (IPC).

03 Kernel Types

3.1 Microkernel

A microkernel only manages what it must: CPU, memory, and IPC. Almost everything else can be treated as a user‑mode component, giving microkernels high portability, small memory and storage footprints, and improved security because most code runs in user mode.

Pros

Portability

Small installation footprint

Low memory usage

Security

Cons

Hardware abstraction via drivers

Potentially slower hardware response (drivers run in user mode)

Processes must wait in queues for information

Processes cannot access each other without waiting

3.2 Monolithic Kernel

In contrast, a monolithic kernel includes not only CPU, memory, and IPC but also device drivers, file‑system management, and system server calls. It offers more direct hardware access and multitasking but can become unstable if many components run in privileged mode.

Pros

More direct hardware access

Easier inter‑process communication

Works without extra installation if supported

Faster process response (no queue for CPU time)

Cons

Larger installation size

Higher memory consumption

Less secure because everything runs in privileged mode

3.3 Hybrid Kernel

A hybrid kernel lets developers choose which components run in user mode and which run in privileged mode. Typically, device drivers and file‑system I/O run in user mode, while IPC and server calls stay in kernel mode, offering flexibility at the cost of extra work for hardware vendors.

4.1 Pros

Developers can decide what runs in user mode versus kernel mode

Smaller installation footprint than a pure monolithic kernel

More flexibility than other designs

4.2 Cons

Subject to the same process‑latency issues as microkernels

Device drivers often need to be managed by users

05 Where Are Linux Kernel Files

In Ubuntu, kernel files are stored in the /boot directory and are named vmlinux‑<version> or vmlinuz‑<version>. The “vm” prefix indicates virtual‑memory support, and the “z” suffix shows the image is compressed (commonly with zlib, LZMA, or BZIP2).

Other important files in /boot include initrd.img‑<version>, System.map‑<version>, and config‑<version>. initrd is a small RAM disk used to load the real kernel; System.map assists memory management before the kernel is fully loaded; config records compile‑time options and modules.

06 Linux Kernel Architecture

Because the Linux kernel is monolithic, it occupies the largest space and has the highest complexity among kernel designs. To mitigate these drawbacks, developers made kernel modules loadable and unloadable at runtime, allowing dynamic addition or removal of features without rebooting.

This capability enables adding hardware support, virtualisation, or even replacing the entire kernel on the fly.

07 Kernel Modules

Kernel modules (loadable kernel modules, LKM) let Linux keep the core kernel small while still supporting a wide range of hardware. Modules have the .ko extension and are usually stored in /lib/modules. They can be loaded or unloaded with modprobe or configured via menuconfig and the /boot/config file.

Third‑party or closed‑source modules (e.g., NVIDIA, ATI) may not be included in some distributions because their source code is unavailable, which some maintainers consider “polluting” the kernel.

The kernel is essential for any functioning computer; unlike macOS or Windows, Linux includes many drivers at the kernel level, providing out‑of‑the‑box functionality.

08 Linux Kernel Learning Summary

Opening

Everyone has their own learning method for the kernel; the author shares a personal, efficient approach.

Why Write This Blog

Beginners should avoid focusing on a single subsystem too early; instead, build a high‑level framework first to prevent frustration.

My Learning Method

First, understand what exists (knowledge of concepts), then grasp the underlying design ideas before diving into detailed code.

The author recommends reading three books in parallel: LKD3 for design concepts, ULK3 for broader overviews, and PLKA for deeper insights, each covering different kernel versions.

Language

Books are available in English and Chinese; reading the original English versions is encouraged for programmers.

API Thoughts

While knowing an API’s existence is useful, understanding its design and portability is crucial for kernel development.

Essence of Design vs. Understanding

Operating systems sit between hardware and applications; knowing why a design choice was made helps bridge theory and practice.

Hands‑On Coding

Practical experimentation—building and loading modules, using UML for debugging—is essential for solid learning.

LKD3 – Linux Kernel Development 3rd

ULK3 – Understanding the Linux Kernel 3rd

PLKA – Professional Linux Kernel Architecture

UML – User Mode Linux

Intel V3 – System Programming Guide

Many of the key control paths in the kernel are described, step by step; the level of detail sometimes makes it hard to get a sense for the big picture, but it does help somebody trying to figure out how a particular function works.

Interest fuels passion; combining work with interest turns work into enjoyment.

Linux is my interest, motivation, direction, and future.

Source: https://www.cnblogs.com/still-smile/p/13977370.html Compiled by: Open Source Linux, cnLinuxer
Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

microkernelOperating SystemLinux kernelmonolithickernel modulesLearning Guide
Open Source Linux
Written by

Open Source Linux

Focused on sharing Linux/Unix content, covering fundamentals, system development, network programming, automation/operations, cloud computing, and related professional knowledge.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.