This repository contains learning-focused Linux engineering projects related to Linux kernel fundamentals, kernel module programming, and low-level system building using Linux From Scratch (LFS) and Gentoo Linux.
The purpose of this repository is to demonstrate hands-on understanding of:
- Linux kernel concepts
- Kernel module lifecycle
- Linux boot process
- Kernel ↔ user-space boundaries
- UNIX-like operating system internals
This repository is intended as a junior/entry-level Linux kernel engineering portfolio.
The contents of this repository fall into the following categories:
This section contains small, testable Linux kernel modules written in C.
These modules are designed to:
- Demonstrate correct use of
module_init()andmodule_exit() - Show safe module load and unload behavior
- Use kernel logging (
pr_info,dmesg) - Illustrate interaction between user space and kernel space
- Follow basic kernel coding conventions
These modules are not production drivers, but educational implementations intended to build a solid foundation for Linux kernel development.
This repository includes bootstrap scripts and configuration notes related to building Linux systems from source using Linux From Scratch (LFS).
Topics covered include:
- Toolchain bootstrap
- Kernel configuration and compilation
- Early system setup
- Understanding init, initramfs, and early boot
- Root filesystem preparation
These files reflect practical experience with manual Linux system construction and deep exposure to system internals.
This section contains configuration files and notes used when working with Gentoo Linux.
Focus areas include:
- Custom kernel configuration
- Minimal vs generic kernel setups
- Boot configuration and troubleshooting
- Understanding modular vs built-in kernel components
- Performance and system specialization trade-offs
The code and configuration files in this repository have been tested or used with:
- Linux From Scratch (LFS)
- Gentoo Linux
- Ubuntu
- Debian
- Fedora
- Arch Linux
- FreeBSD
- DragonFly BSD
- OpenBSD
- NetBSD
Note: Kernel modules must be built against the running kernel headers.
Typical build workflow:
make
sudo insmod module_name.ko
dmesg | tail
sudo rmmod module_nameThis repository focuses on:
- Understanding Linux kernel fundamentals
- Developing confidence reading kernel source code
- Practicing safe kernel programming habits
- Preparing for entry-level Linux kernel engineering roles
- Bridging the gap between Linux system usage and kernel development
The projects in this repository are educational.
They are not intended for production use.
The code prioritizes clarity and correctness over performance or feature completeness.
Sayed Mohammad Badiezadegan
Linux & Kernel Engineering Enthusiast
GitHub: https://github.com/mbzadegan
This repository was created as part of a structured effort to transition from advanced Linux system usage (LFS, Gentoo, BSDs) into Linux kernel development, with a focus on correctness, learning, and open-source best practices.