University of Colorado Boulder
Linux Kernel Programming and Introduction to Yocto Project
University of Colorado Boulder

Linux Kernel Programming and Introduction to Yocto Project

This course is part of Advanced Embedded Linux Development Specialization

Taught in English

Some content may not be translated

Daniel Walkes

Instructor: Daniel Walkes

5,514 already enrolled

Included with Coursera Plus

Course

Gain insight into a topic and learn the fundamentals

Advanced level

Recommended experience

40 hours (approximately)
Flexible schedule
Learn at your own pace
Progress towards a degree

What you'll 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

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

6 quizzes

Course

Gain insight into a topic and learn the fundamentals

Advanced level

Recommended experience

40 hours (approximately)
Flexible schedule
Learn at your own pace
Progress towards a degree

See how employees at top companies are mastering in-demand skills

Placeholder

Build your subject-matter expertise

This course is part of the Advanced Embedded Linux Development Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate
Placeholder
Placeholder

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV

Share it on social media and in your performance review

Placeholder

There are 4 modules in this course

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.

What's included

11 videos3 readings2 quizzes1 peer review

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.

What's included

7 videos2 readings2 quizzes1 peer review

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.

What's included

8 videos1 reading1 quiz1 peer review

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.

What's included

6 videos1 reading1 quiz1 peer review

Instructor

Daniel Walkes
University of Colorado Boulder
3 Courses15,070 learners

Offered by

Recommended if you're interested in Software Development

Why people choose Coursera for their career

Felipe M.
Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

New to Software Development? Start here.

Placeholder

Open new doors with Coursera Plus

Unlimited access to 7,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

Advance your career with an online degree

Earn a degree from world-class universities - 100% online

Join over 3,400 global companies that choose Coursera for Business

Upskill your employees to excel in the digital economy

Frequently asked questions