Linux Device Drivers Development Course for Beginners



Learn how to develop Linux device drivers. They are the essential software that bridges the gap between your operating system and devices like keyboards, printers, and more! From setting up your development environment across different operating systems to diving deep into the Linux kernel, system calls, and the /proc filesystem, this course provides a hands-on approach to mastering device driver development. inpyjama's YouTube channel: https://www.youtube.com/@inpyjama Free embedded systems book: https://inpyjama.com/b/c-ninja-book Linux Device Drivers course with quiz and certification: https://inpyjama.com/c/ldd-101 inpyjama's Blog – https://inpyjama.com/hello-world ⭐️ Contents ⭐️
⌨️ (0:00:00) Who we are and our mission
⌨️ (0:01:29) Introduction and layout of the course
⌨️ (0:06:51) Sandbox environment for experimentation
⌨️ (0:11:14) Setup for Mac
⌨️ (0:28:41) Setup for Linux
⌨️ (0:44:29) Setup for Windows
⌨️ (1:07:52) Relaunching multipass and installing utilities
⌨️ (1:15:11) Linux Kernel, System and Bootup
⌨️ (1:30:39) User Space, Kernel Space, System calls and device drivers
⌨️ (1:45:20) File and file ops w.r.t device drivers
⌨️ (1:54:28) Our first loadable module
⌨️ (2:28:04) Deep Dive – make and makefile
⌨️ (2:48:12) lsmod utility
⌨️ (2:58:59) insmod w.r.t module and the kernel
⌨️ (3:06:36) rmmod w.r.t module and the kernel
⌨️ (3:12:12) modinfo and the .mod.c file
⌨️ (3:16:19) proc file system, system calls
⌨️ (3:31:38) Exploring the /proc FS
⌨️ (3:37:53) Creating a file entry in /proc
⌨️ (4:07:40) Implementing the read operation
⌨️ (4:22:52) Passing data from the kernel space to user space
⌨️ (4:47:54) User space app and a small challenge
⌨️ (4:55:10) Quick recap and where to next?