4.37 out of 5
4.37
27 reviews on Udemy

Learn Linux Kernel Programming

This course will teach you how to start writing Linux Kernel Modules and Device Drivers. Course is full of examples
Instructor:
Linux Trainer
182 students enrolled
What is Kernel Module,Device Driver and Differences
Advantages and Disadvantages of Kernel Modules
Understanding the hello world Linux Kernel Module and process of compilation
Various commands: lsmod, rmmod, modinfo, insmod, modprobe, modinfo, depmod, objdump, dmesg
Passing Parameters to Linux Kernel Modules
Exporting Symbols
Kernel Panic,oops, BUG, WARN
Process Management in Linux Kernel
Creating Kernel Threads
Module Metadata
Printk and Dynamic Debug

100+ Lectures on Linux Kernel Programming

Updated on Sep 21st 2020 : Added Blacklisting video in Bonus section

These videos are part of my Linux kernel programming course: Master Linux Kernel Programming. After this course, you will be able to see how hello world Linux kernel modules compile, load, and install. You will be learning various tools/commands related to Linux Kernel Modules.

By enrolling, you will have lifetime access to course. You can learn at your own pace and refer back them whenever you want!

Summary of what you”ll get

  • Over 5 hours of video teaching and training
  • Understanding the in and out of the hello world kernel modules
  • Write various kernel modules which exports symbols, accepts parameters, creates kernel threads
  • Learn about the printk function in deep
  • Various commands used while working in Linux Kernel Modules:insmod, rmmod, modprobe, lsmod, dmesg
  • All examples and notes used in the course are available for download
  • Direct access to your instructors for questions and help through the Udemy communication channels
  • Lifetime access to the course, including all future updates

Commands you will learn from this course:

  • lsmod
  • dmesg
  • insmod
  • rmmod
  • modprobe
  • modinfo
  • depmod
  • objdump
  • ps -l

API’s covered in the course:

  • module_param
  • module_param_array
  • EXPORT_SYMBOL
  • EXPORT_SYMBOL_GPL
  • MODULE_INFO
  • KBUILD_MODNAME
  • dump_stack
  • panic
  • BUG()
  • for_each_process
  • num_online_cpus
  • printk_rate_limit
  • printk_once
  • print_hex_dump
  • print_hex_dump_bytes
  • current
  • kthread_create
  • wake_up_process
  • kthread_stop
  • kthread_should_stop
  • kthread_run
  • usleep_range
  • msleep
  • smp_processor_id
  • VERMAGIC_STRING

     

This course comes with a 30 day money back guaranteed!. If you are not satisfied with the course, you’ll get your money back

So what are you waiting for, enroll now and take the next step in learning Linux Kernel Programming

Introduction

1
What is Device Driver
2
What is Kernel Module
3
Device Drivers vs Kernel Modules
4
Types of Kernel Modules
5
Basic Commands
6
Hello World Kernel Module
7
Printf vs Printk
8
Simplified Makefile
9
What happens when run insmod
10
What happens if we return -1 from Kernel Module Init function
11
Give another name to Kernel Module
12
Kernel Module Span across Multiple C Files
13
Two Kernel Modules from Single Makefile
14
Dmesg in deep
15
Dmesg follow option
16
Linux Kernel Module example with module_init only
17
Linux Kernel Module example with module_exit only
18
Two Line Linux Kernel Module
19
Cross Compilation
20
Resources
21
Introduction Quiz

Linux Kernel Module Internals

1
From .c to .ko
2
Understanding Module.symvers and modules.order
3
Insmod vs Modprobe
4
How Modprobe calculates dependencies (modules.dep/depmod)
5
Understanding module_init & module_exit functions
6
Examples of gcc attribute alias
7
Linux Kernel Module example without module_init and module_exit macro
8
Linux Kernel Module Internals Quiz

Module Parameters

1
Passing Parameters to Linux Kernel Modules
2
What happen if we pass incorrect values to module parameters
3
How to pass parameters to builtin modules
4
How to pass string with multiple word as parameter
5
Passing zero to permission argument of module_param macro
6
Passing array as module parameters
7
Inv bool
8
Module Parameters Quiz

Exporting Symbols

1
Symbol and Symbol Table
2
Exporting symbol
3
System.map vs /proc/kallsyms
4
Linux Kernel Module example of exporting function
5
Module Stacking
6
Linux Kernel Module example of exporting variable
7
Version Magic
8
Resources
9
Exporting Symbols Quiz

Module Licenses

1
What happens if we don't specify MODULE_LICENSE macro
2
What is tainted kernel
3
How to check whether the kernel is in tainted state or not
4
What happens when you specify invalid license (Say "abc")
5
What happens when a non-GPL kernel module trying to access GPL Module
6
Module Licenses Quiz

Module Metadata

1
How to find out kernel version from a .ko
2
Module metadata
3
MODULE_INFO macro
4
Objdump on Kernel module
5
Module Metadata Quiz

Printk

1
What happens if we continuously call printk
2
Printk kernel ring buffer size
3
Printk Log Levels
4
Default printk log level
5
Kernel Messages on Console
6
Short printk macros
7
Enable pr_debug messages
8
Linux Kernel Module example which prints floating point number
9
Why floating point unit is OFF in kernel space
10
Limiting printk messages - printk_rate_limit
11
Limiting printk messages - printk_once
12
Avoiding default new line behavior of printk
13
Printing hex dump - print_hex_dump
14
Printing hex dump - print_hex_dump_bytes
15
Dynamic Debug
16
Resources
17
Printk quiz

System call for loading module

1
What happens if i try to load non-ko file with insmod
2
strace on insmod command
3
Find out name of module from .ko

Kernel Panic, Oops, Bug

1
How to dump kernel stack
2
What is kernel panic
3
Kernel Panic Example
4
What is oops
5
Oops Example
6
What is BUG and example
7
Can we remove module after bug/oops
8
How to define preprocessing symbol in Makefile
9
Resources
10
Quiz

Process Management in Linux Kernel

1
How to find out how many CPU's are present from user space and kernel space
2
Process representation in Linux Kernel and process states
3
Linux Kernel Module example demonstrating process name, process id and process s
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.4
4.4 out of 5
27 Ratings

Detailed Rating

Stars 5
15
Stars 4
8
Stars 3
2
Stars 2
1
Stars 1
1
80a3359090e3e3dbc9c1bcda7857c32d
30-Day Money-Back Guarantee

Includes

6 hours on-demand video
5 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion