Online Course – Google’s Certified Professional Internship in Advanced Embedded Linux Development

Develop and deploy software for embedded Linux. Discover how to develop and run software for embedded Linux-based devices.

Suggested by: Coursera (What is Coursera?)

Professional Certificate

Intermediate level

No prior knowledge required

Time to complete the course

7-day free trial

No unnecessary risks

Skills you will acquire in the course

  • Practical understanding of embedded operating systems
  • Configuring, building, and running the Linux kernel and file system from source
  • Building an Embedded Linux Distribution Using Buildroot or Yocto
  • Software development for embedded devices with file I/O, multiprocessing, signals, and POSIX APIs
  • Writing software for inter-process communication using sockets and signals
  • Monitoring parallel software programs using GDB, Valgrind, and other tools
  • Creating a custom driver for Linux
  • Understanding issues related to Linux driver development, including debugging, parallel techniques, and response times
  • Demonstrate knowledge in a final project that illustrates the course concepts on hardware

What you will learn in the course

Courses for which the course is suitable

  • Embedded Systems Software Engineer
  • Embedded Linux key
  • Driver Development Engineer
  • Software developer for embedded operating systems
  • Information Systems Engineer
  • Embedded device application developer
  • Inter-process communication network engineer
  • Software performance analyzer for embedded systems
  • Linux systems programming expert

Internship – 3-part course series

The courses in this specialization can also be taken toward an academic degree as ECEA 5305 – 5307, as part of the CU Boulder Master of Science in Electrical Engineering degree.

This specialization provides students with the fundamental knowledge of embedded operating systems, including a practical understanding of how to configure and operate a Linux-based embedded system. Students gain expertise in software development tools and methods that can be used to create applications and build custom Linux-based embedded devices.

Hands-on Learning Project

This course will focus on parallel software design for embedded system applications using the Linux operating system. At the end of the course, students will be able to:

  • Configure, build, and run the Linux kernel and file system from source.
  • Build their own embedded Linux distribution using the Buildroot or Yocto frameworks.
  • Use systems programming terms to develop software for embedded devices, including file I/O, multiprocessing, signals, and time-related POSIX APIs.
  • Write software for inter-process and inter-process communication using sockets and signals.
  • Monitor parallel software programs using GDB, Valgrind, and other tools for analysis, profiling, and tracing.
  • Create a custom driver for Linux.
  • Understand issues related to Linux driver development, including debugging techniques, parallel techniques, response times, and “memory allocation”.
  • Present their knowledge in a final project that illustrates the course concepts on hardware.

Details of the courses that make up the specialization

Linux system programming and introduction to Buildroot

Course 1
43 hours
4.1 (72 ratings)

What will you learn?

  • Linux system programming fundamentals, including processes and kernels.
  • How to build a customized Linux kernel and file system for an embedded device.
  • How to use Buildroot to build a customized Linux kernel and file system for an embedded device.

Skills you will acquire

  • Command line script
  • Programming in C language
  • Linux
  • Embedded Systems Engineering
  • Electrical Engineering

Linux kernel programming and introduction to Yocto Project

Course 2
40 hours

What will you learn?

  • Linux kernel development basics.
  • How to build a driver compatible with the Linux kernel and deploy it on an embedded device.
  • How to use the Yocto Project to build templates for embedded devices.

Skills you will acquire

  • Command line script
  • Programming in C language
  • Embedded systems
  • Linux

Topics and projects in Linux embedded systems

Course 3
47 hours

What will you learn?

  • How to structure a product using Agile and Scrum principles
  • How to deploy a Buildroot or Yocto project on embedded hardware
  • Relevant and up-to-date terms related to embedded Linux development

Skills you will acquire

  • Embedded systems
  • Agile software development
  • Linux