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

Fundamentos do Suporte Técnico (Coursera) Coursera
Google

Fundamentos do Suporte Técnico (Coursera)

Ele é o primeiro de uma série que visa prepará-lo para entrar no mercado de TI como especialista de suporte técnico. Neste curso, apresentaremos o mundo da Tecnologia da Informação, ou TI. Você aprenderá sobre diversas facetas da Tecnologia da Informação, como hardware, software, internet, resolução de problemas e atendimento ao cliente. Mostraremos como uma entrevista técnica costuma transcorrer e daremos dicas de como se preparar melhor para esse tipo de ocasião.

Aug 24th 2026
5-12 Weeks
Tools of the Trade: Linux and SQL (Coursera) Coursera
Google

Tools of the Trade: Linux and SQL (Coursera)

This is the fourth course in the Google Cybersecurity Certificate. These courses will equip you with the skills you need to apply for an entry-level cybersecurity job. You’ll build on your understanding of the topics that were introduced in the third Google Cybersecurity Certificate course. In this course, you will explore computing skills that you’ll use on-the-job as a cybersecurity analyst.

Aug 24th 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.

Aug 24th 2026
4 Weeks
Modeling and Debugging Embedded Systems (Coursera) Coursera
University of Colorado Boulder

Modeling and Debugging Embedded Systems (Coursera)

This is part 3 of the specialization. In this course students will learn : * About SystemC and how it can be used to create models of cyber-physical systems in order to perform "what-if" scenarios; * About Trimble Engineering's embedded systems for heavy equipment automation; * A deeper understanding of embedded systems in the Automotive and Transportation market segment; * How to debug deeply embedded systems; * About Lauterbach's TRACE32 debugging tools; * How to promote technical ideas within a company; * What can be learned from studying engineering failures.

Aug 24th 2026
4 Weeks
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.

Aug 24th 2026
4 Weeks
System Validation: Automata and behavioural equivalences (Coursera) Coursera
EIT Digital

System Validation: Automata and behavioural equivalences (Coursera)

Have you ever experienced software systems failing? Websites crash, calendar not synchronising, or even a power blackout. Of course you have! But did you know that many of these errors are the result of communication errors either within a system or between systems? Depending on the system, the impact of software failures can be huge, even resulting in massive economic damage or loss of lives. Software, and in particular the communication between software-intensive systems, is very complex and very difficult to get right. However, we _need_ dependability in the systems we use, directly or indirectly, to support us in our everyday lives.

Aug 24th 2026
3 Weeks
Python and Rust with Linux Command Line Tools (Coursera) Coursera
Duke University

Python and Rust with Linux Command Line Tools (Coursera)

This course is designed for beginners and those with some programming experience in either Python or Rust that want to implement automation and utilities in the command-line. Although no prior knowledge of Python or Rust is required, basic programming knowledge is recommended as well as some familiarity with the command-line interface (CLI).

Aug 24th 2026
4 Weeks
Operating System Virtualization - Bachelor's (Coursera) Coursera
Illinois Tech

Operating System Virtualization - Bachelor's (Coursera)

Each successful student in this course will become familiar with hypervisors, virtualization terms, infrastructure considerations, and appropriate use cases. While designed to give an overview of today’s Virtualization technologies and methods, students in the course will gain enough practical knowledge to begin deploying various hypervisors and virtual machine environments using current industry standard platforms.

Aug 31st 2026
5-12 Weeks
Internet of Things: Setting Up Your DragonBoard™ Development Platform (Coursera) Coursera
University of California, San Diego

Internet of Things: Setting Up Your DragonBoard™ Development Platform (Coursera)

Do you want to develop skills to prototype mobile-enabled products using state-of-the-art technologies? In this course you will build a hardware and software development environment to guide your journey through the Internet of Things specialization courses. We will use the DragonBoard™ 410c single board computer (SBC).

Aug 24th 2026
5-12 Weeks
Architecting Smart IoT Devices (Coursera) Coursera
EIT Digital

Architecting Smart IoT Devices (Coursera)

This course will teach you how to develop an embedded systems device. In order to reduce the time to market, many pre-made hardware and software components are available today. You'll discover all the available hardware and software components, such as processor families, operating systems, boards and networks. You'll also learn how to actually use and integrate these components.

Aug 24th 2026
5-12 Weeks