Linux Kernel and Device Drivers Course
What is Linux Kernel? The Linux Kernel is a course in which you learn about the core of the Linux operating system. Its role is to provide all the necessary tools and services to user-space programs so that they can perform their tasks efficiently and quickly.
The Linux Kernel course provides, among other things, a solid approach to "Kernel Blocks" — different parts of the kernel such as File Systems, Networking Stacks, Scheduler, Kernel Device Drivers, Kernel Entities/Objects, achieved through System Calls.
Part of the functionality of the Linux Kernel involves controlling hardware through Kernel Device Drivers. These device drivers must be stable and sometimes even serve as modules for the kernel (Loadable Kernel Modules — LKMs). The development in the Kernel environment is challenging and unique.
During development, a wide range of topics needs to be considered, including Kernel Processes, HW/SW Interrupts, Synchronization, and more.
For comparison with developing programs as processes in the User Space environment: if a program has a bug or an unnoticed issue, only that process is affected. While this is very serious, it's unlikely to cause a system crash, and terminating that process can resolve the issue.
In contrast, a bug in the Kernel will inevitably impact the entire operating system. In the best case scenario, it might crash all processes in the Kernel.
The Linux Kernel course focuses on all the topics required for developing modules and device drivers in the environment of Linux Kernel servers. It doesn't require prior knowledge of Kernel development.
The course's objective is to provide engineers in the high-tech industry with theoretical and practical knowledge in the field, including the necessary tools and interfaces, resource management provided by the operating system, utilization of objects and services, usage of debugging tools, resolution of typical issues, Board Support Package (BSP) development, and more.
Upon completion of the course, a section will be dedicated to Linux Kernel & User Space development within the YOCTO environment.
The course focuses on ARM and Intel architectures, using development boards based on Cortex A-8 / i.MX-8. It emphasizes decoding "Kernel Blocks," optimal development of Kernel Device Drivers, and updated utilization of Linux Kernel APIs.
Throughout this course, students will learn:
The Linux Kernel course is suitable for:
Linux Kernel Course Prerequisites:
The Linux Kernel course is a practical course that includes lectures and hands-on exercises.
The course duration is approximately 90 academic hours — 60 practical hours + 30 lab exercise hours.
The course includes:
At the end of the Linux Kernel course, each student will complete a practical project that summarizes the acquired knowledge throughout the course.
The lectures take place once a week in the evenings or mornings.
Ch. 1
Linux Kernel overview- Main characteristics
Ch. 2
Kernel Basic data structures
Ch. 3
Scheduling in Linux
Ch. 4
Developing Kernel Modules
Ch. 5
Character Device Drivers as LKMs
Ch. 6
Pin Control and GPIO Subsystem
Ch. 7
Kernel object model
Ch. 8
Sysfs Devices/buses/drivers/subsystems
Ch. 9
Udev
Ch. 10
Memory management
Ch. 11
Platform Device Drivers
Ch. 12
Linux Device Tree
Ch. 13
I/O memory and ports
Ch. 14
Wait Queues
Ch. 15
Interrupts and Exceptions
Ch. 16
Work deferring mechanism
Ch. 17
Kernel Synchronization
Ch. 18
I2C Client Drivers
Ch. 19
SPI Device Drivers
Ch. 20
IIC frame work
Benny Cohen
Embedded Academy Founder and CEO
As a long-time veteran in the technology industry, Benny Cohen combines a deep passion for technology with extensive field experience. With a B.Sc. in Electronics Engineering and an M.Sc. in Communication Engineering, he has spent over 20 years developing software and hardware systems, including the last few years focusing on the cybersecurity industry. In addition to his role as the company founder & CEO, Benny also operates as a hands-on practitioner who specializes in penetration testing and has conducted significant security assessments for leading enterprises and security companies worldwide. His approachable teaching style and real-world expertise make learning both engaging and relevant.
News, insights, and learning resources from Embedded Academy