Program Overview
This live-online, hands-on training, held over twenty sessions, trains engineering graduates and entry-level professionals to develop their Linux kernel development skills. The training includes coding practice in which trainees develop a working virtual WiFi driver based on the network stack. They learn all aspects of kernel programming, networking stack development, and data transfer.

Introduction to Training Program
Welcome to the Linux WiFi Driver Development Program. Custom-made for engineering graduates as well as young professionals, this 20-lesson live course will give you hands-on experience on how operating system theories can be applied in real life. This is not a class in operating system architecture but rather a course where you will actually develop a complete Virtual SoftMAC WiFi Driver using the Linux driver model. Through simulation of the interactions between your software and hardware, you will learn how to handle memory and concurrency management, networking, and wireless protocols without being constrained by your device’s architecture.
Introduction to WiFi Driver
The Linux WiFi driver can be considered to be an important software interface that links the Linux operating system with the WiFi hardware itself. The function of the driver is to facilitate a secure translation between the network packets that come from user space, and 802.11 wireless packets, and vice versa. Today's Linux WiFi drivers make use of some highly capable subsystems, including, but not limited to, the CFG80211 and the MAC80211. They handle many important functions, such as network scanning, connecting, and encryption processes. Therefore, all the WiFi driver needs to do is pass information through buses such as PCIe and USB.
Target Audience
This training builds a strong foundation in Linux kernel and network driver development for:
→ Engineering Graduates: Recent CS, ECE, or IT alumni specializing in systems programming.
→ Junior Professionals (0-1 Years): Software, embedded, or BSP engineers entering core Linux kernel roles.
→ Systems Programmers: Developers focused on low-level hardware-OS communication and wireless networks.
Agenda
Training Objective
Pre-Requisite
Kernel development is rigorous. Trainees must possess these foundational skills before starting:
1. Advanced C Programming (Mandatory)
A strong command of C is essential, specifically:
→ Pointers & Memory: Double/function pointers, arithmetic, and manual management.
→ Data Structures: struct, unions, and linked lists.
→ Bitwise Operations: Shifting and masking for hardware registers and network headers.
→ Macros: Complex preprocessor macros.
2. Operating System Fundamentals
Knowledge of OS resource management is required:
→ Memory Spaces: User vs. Kernel Space.
→ Concurrency: Race conditions, threads, Mutexes, and Spinlocks.
→ Hardware Interaction: Interrupts and polling.
3. Linux Environment & Tooling
Proficiency in the Linux terminal is expected:
→ CLI: File navigation, permissions, and bash commands.
→ Build Tools: gcc compiler and Makefiles.
→ Text Editors: Vim/Nano or a configured Linux IDE (e.g., VS Code).
Note: Prior networking knowledge (OSI/TCP/IP) is helpful; 802.11 protocols will be taught from scratch.
Duration
→ 20 Live Online Session of 1 hour each.
→ Regular (weekdays) 20 working days, 5 weeks(approx)
→ Weekends (Sat, Sun) course duration: 10 weeks
Training Methodolody
→ Lectures: Detailed presentations on theoretical concepts and coding techniques.
→ Hands-On Labs: Practical programming exercises and labs to apply learned concepts.
→ Reading Assignments: Selection of notes, documentation, videos and articles to supplement learning.
→ Videos: Access to video tutorials for visual learning of complex topics.
→ Pedagogy: Highly interactive and code-driven. Every theoretical concept is immediately followed by implementation into WiFi driver.
Course Delivery
Online: Live interactive sessions with real-time coding and Q&A.
In-person: Classroom sessions focused on hands-on practice and collaborative learning.
Hybrid: Combination of online lectures with in-person or virtual labs for practical application.
Deliverables
Upon completion, participants would:
→ Have a strong understanding of Linux based WiFi device Driver and best practices.
→ Have completed/implemented a complete Linux based WiFi device Driver.