Linux Kernel Programming and Introduction to Yocto Project (Coursera)

Linux Kernel Programming and Introduction to Yocto Project (Coursera)

This course provides an introduction to Kernel Driver development for the Linux operating system. The Yocto build system is introduced, which students use to build their own custom Embedded Linux system through programming assignments.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

Linux Kernel Programming and Introduction to Yocto Project can also be taken for academic credit as ECEA 5306, part of CU Boulder’s Master of Science in Electrical Engineering.

What You Will Learn

  • Fundamentals of Linux kernel development.
  • How to build a custom Linux kernel driver and deploy on an Embedded Device.
  • How to use the Yocto project to build Embedded Device images

Syllabus

WEEK 1
Introduction to Device Drivers and Yocto
In this module, you will learn the basics of Linux Device Drivers, including how to build and run a Linux Device Driver. You will modify the socket application you developed in the previous course and add threading. You will also be introduced to the Yocto Project and build a custom Yocto image which includes your custom socket application developed in the previous course.

WEEK 2
Linux Character Drivers and Debugging
In this module, you will learn about the different types of Linux Kernel drivers and the kernel support for character device drivers. You will learn about fundamental driver data structures and functions for interacting with user space. You will understand the basics of Kernel debugging and how this differs from application debugging. You will implement a unit-tested circular buffer which will be used in future assignments. Finally, you will build a Yocto embedded device image with support for an out of tree kernel module.

WEEK 3
Concurrency in the Linux Kernel
In this module, you will learn the basics of concurrency in the Linux kernel, and how to use semaphore and mutex in your device driver to design for concurrent access. You will learn the difference between atomic and non atomic context and strategies for locking in each context. You will modify your socket application to interact with a custom character device based on your tested circular buffer implementation using the concurrency concepts discussed in the module.

WEEK 4
Kernel sleeping and ioctl
In this module, you will learn the purpose and use of the ioctl command for Linux drivers and how the ioctl command is implemented in a driver. You will learn the basics of sleeping and waking up in the Linux kernel and how to handle blocking and non-blocking IO. You will modify your custom Linux kernel driver and Linux application to include ioctl support.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Introduction to FPGA Design for Embedded Systems (Coursera) Coursera
University of Colorado Boulder

Introduction to FPGA Design for Embedded Systems (Coursera)

Programmable Logic has become more and more common as a core technology used to build electronic systems. By integrating soft-core or hardcore processors, these devices have become complete systems on a chip, steadily displacing general purpose processors and ASICs. In particular, high performance systems are now almost always implemented with FPGAs. This course will give you the foundation for FPGA design in Embedded Systems along with practical design skills.

Oct 19th 2026
4 Weeks
Design of CPS with ARM processor using Embedded C (Coursera) Coursera
L&T EduTech

Design of CPS with ARM processor using Embedded C (Coursera)

This comprehensive course is designed to equip participants with the knowledge and practical skills required to design and implement Cyber-Physical Systems (CPS) tailored for industrial applications. From foundational concepts to hands-on development using Embedded C programming on ARM processors, participants will explore the interdisciplinary nature of CPS, demystify its complexities, and gain the expertise needed to navigate the evolving landscape of smart systems.

Oct 19th 2026
4 Weeks
Capstone: Autonomous Runway Detection for IoT (Coursera) Coursera
EIT Digital

Capstone: Autonomous Runway Detection for IoT (Coursera)

The students will develop a larger system using the learning outcomes from these courses, and the students will evaluate the developed system in a real-world programming environment. This course is a true engineering task in which the student must, not only implement the algorithm code, but also handle the interfaces between many different actors and hardware platforms.

Nov 2nd 2026
3 Weeks
Fundamentals of Red Hat Enterprise Linux (Coursera) Coursera
Red Hat

Fundamentals of Red Hat Enterprise Linux (Coursera)

This course will provide you with a basic introduction to Linux® skills using Red Hat® Enterprise Linux 8. It will show you how a Linux system is organized, and will demonstrate introductory system administration tasks, which you will be able to practice on your own. You will be introduced to reasons why Linux and the open source development model are so important in today's computing environment. Linux systems are used everywhere—the internet, point-of-sale systems, and the world's stock markets. You’ll find Linux running smart TVs, in-flight entertainment systems, and most of the top supercomputers in the world.

Oct 26th 2026
5-12 Weeks
Sistemas operativos y tú: Convertirse en un usuario avanzado (Coursera) Coursera
Google

Sistemas operativos y tú: Convertirse en un usuario avanzado (Coursera)

En este curso, a través de una combinación de conferencias de video, demostraciones y prácticas, aprenderás acerca de los componentes principales de un sistema operativo y cómo realizar tareas críticas tales como administrar software y usuarios, y configurar hardware. Vamos a terminar con un ejemplo de cómo puede aparecer este contenido en una entrevista.

Oct 19th 2026
5-12 Weeks
Web Connectivity and Security in Embedded Systems (Coursera) Coursera
EIT Digital

Web Connectivity and Security in Embedded Systems (Coursera)

In this course, we will explore several technologies that bring modern devices together, facilitating a network of connected things and making devices internet enabled. We will discuss rules, protocols, and standards for these devices to communicate with each other in the network. We will also go through security and privacy issues and challenges in cyber physical systems (CPS). We will explore measures and techniques for securing systems from different perspectives. Possible attack models are introduced and solutions to tackle such attacks are discussed. Moreover, some basic concepts related to privacy in cyber physical systems are presented.

Oct 12th 2026
5-12 Weeks
Requirement Specifications for Autonomous Systems (Coursera) Coursera
University of Colorado Boulder

Requirement Specifications for Autonomous Systems (Coursera)

This course will discuss different ways of formally modeling requirements of interest for autonomous systems. Examples of such requirements include stability, invariance, reachability, regular languages, omega-regular languages, and linear temporal logic properties. In addition, it will introduce non-deterministic finite and büchi automata for recognizing, respectively, regular languages and omega-regular languages.

Oct 19th 2026
5-12 Weeks
CPS Design with ARM Core using MicroPython for Industries (Coursera) Coursera
L&T EduTech

CPS Design with ARM Core using MicroPython for Industries (Coursera)

This course equips participants with the knowledge and hands-on skills needed to design and implement ARM Processor with Micro python in Cyber-Physical Systems (CPS) for industrial and use. Covering foundational concepts and practical development with Micro python programming on ARM processors, participants will explore the Consumer Industry, Smart City Perspective of CPS, and gain expertise to design and control the evolving smart systems.

Oct 19th 2026
5-12 Weeks