Linux System Programming and Introduction to Buildroot (Coursera)

Linux System Programming and Introduction to Buildroot (Coursera)

This course provides an overview of System Programming for the Linux operating system, or software which is interfacing directly with the Linux Kernel and C library. The basic components of a Linux Embedded System, including kernel and root filesystem details are discussed. The Buildroot 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.

What You Will Learn

  • Fundamentals of Linux System Programming, including Processes and Threads.
  • How to build a custom Linux kernel and root filesystem for an Embedded device.
  • How to use Buildroot to build a custom Linux Kernel and root filesystem for an Embedded device.

Syllabus

WEEK 1
Intro to Linux System Programming and Toolchains
In this module, you will learn about Linux shell scripting and System Programming concepts. You will also understand the basics of an Embedded Linux toolchain and setup a cross-compiler.

WEEK 2
File IO, Process Management, Basics of Embeddd Linux
In this module, you will learn the basics of File IO for Linux. You will understand the basics of Process Management, process forking, and Linux daemons. You will build your own Linux kernel and root filesystem, boot and run on QEMU.

WEEK 3
Threads and Multithreading, Introduction to Buildroot
In this module, you will learn the basics of Threading and Multi Thread Synchronization in Linux system programming using POSIX. You will also learn about the Buildroot build system and build a QEMU Image using Buildroot.

WEEK 4
Time and Sockets
In this module, you will learn the fundamentals of signal handling and time management in Linux System Programming. You will learn the basic components of Embedded Linux debugging. You will implement a socket server application and deploy on a QEMU based Embedded System using Buildroot.

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

Related Courses

Using Python to Interact with the Operating System (Coursera) Coursera
Google

Using Python to Interact with the Operating System (Coursera)

By the end of this course, you’ll be able to manipulate files and processes on your computer’s operating system. You’ll also have learned about regular expressions -- a very powerful tool for processing text files -- and you’ll get practice using the Linux command line on a virtual machine. And, this might feel like a stretch right now, but you’ll also write a program that processes a bunch of errors in an actual log file and then generates a summary file. That’s a super useful skill for IT Specialists to know.

Jun 9th 2026
5-12 Weeks
Learn to code with AI (Coursera) Coursera
Scrimba

Learn to code with AI (Coursera)

Imagine waking up tomorrow as a web developer. What would you want to build? With AI tools like ChatGPT, you're already a developer, regardless of your experience, if you know how to work with them. So in this course, you'll build functional, interactive front-end projects while learning how to write effective prompts and debug and refine your code with the help of AI.

Jun 10th 2026
2 Weeks
Data Structures and Performance (Coursera) Coursera
University of California, San Diego

Data Structures and Performance (Coursera)

How do Java programs deal with vast quantities of data? Many of the data structures and algorithms that work with introductory toy examples break when applications process real, large data sets. Efficiency is critical, but how do we achieve it, and how do we even measure it? This is an intermediate Java course. We recommend this course to learners who have previous experience in software development or a background in computer science, and in particular, we recommend that you have taken the first course in this specialization (which also requires some previous experience with Java).

Jun 8th 2026
5-12 Weeks
Distributed Programming in Java (Coursera) Coursera
Rice University

Distributed Programming in Java (Coursera)

This course teaches learners (industry professionals and students) the fundamental concepts of Distributed Programming in the context of Java 8. Distributed programming enables developers to use multiple nodes in a data center to increase throughput and/or reduce latency of selected applications. By the end of this course, you will learn how to use popular distributed programming frameworks for Java programs, including Hadoop, Spark, Sockets, Remote Method Invocation (RMI), Multicast Sockets, Kafka, Message Passing Interface (MPI), as well as different approaches to combine distribution with multithreading.

Jun 8th 2026
4 Weeks
Cloud Computing Concepts, Part 1 (Coursera) Coursera
University of Illinois at Urbana-Champaign

Cloud Computing Concepts, Part 1 (Coursera)

Cloud computing systems today, whether open-source or used inside companies, are built using a common set of core techniques, algorithms, and design philosophies—all centered around distributed systems. Learn about such fundamental distributed computing "concepts" for cloud computing. Some of these concepts include: clouds, MapReduce, key-value/NoSQL stores, classical distributed algorithms, widely-used distributed algorithms, scalability, trending areas, and much, much more!

Jun 8th 2026
5-12 Weeks
Fundamentos de Android (Coursera) Coursera
Universidad Nacional Autónoma de México

Fundamentos de Android (Coursera)

Por medio de ejercicios prácticos, serás capaz de manipular las herramientas que Android te ofrece para desarrollar aplicaciones móviles. En este curso, instalarás el entorno de desarrollo Android Studio y manipularás sus más sofisticadas particularidades. Por ejemplo, la composición de archivos de un proyecto Android y los patrones más comunes para el desarrollo de tus aplicaciones.

Jun 8th 2026
5-12 Weeks
The Unix Workbench (Coursera) Coursera
Johns Hopkins University

The Unix Workbench (Coursera)

Unix forms a foundation that is often very helpful for accomplishing other goals you might have for you and your computer, whether that goal is running a business, writing a book, curing disease, or creating the next great app. The means to these goals are sometimes carried out by writing software. Software can’t be mined out of the ground, nor can software seeds be planted in spring to harvest by autumn. Software isn’t produced in factories on an assembly line. Software is a hand-made, often bespoke good. If a software developer is an artisan, then Unix is their workbench.

Jun 8th 2026
4 Weeks
Parallel Programming in Java (Coursera) Coursera
Rice University

Parallel Programming in Java (Coursera)

This course teaches learners (industry professionals and students) the fundamental concepts of parallel programming in the context of Java 8. Parallel programming enables developers to use multicore computers to make their applications run faster by using multiple processors at the same time. By the end of this course, you will learn how to use popular parallel Java frameworks (such as ForkJoin, Stream, and Phaser) to write parallel programs for a wide range of multicore platforms including servers, desktops, or mobile devices, while also learning about their theoretical foundations including computation graphs, ideal parallelism, parallel speedup, Amdahl's Law, data races, and determinism.

Jun 8th 2026
4 Weeks
Introduction to Web Development (Coursera) Coursera
University of California, Davis

Introduction to Web Development (Coursera)

This course is designed to start you on a path toward future studies in web development and design, no matter how little experience or technical knowledge you currently have. The web is a very big place, and if you are the typical internet user, you probably visit several websites every day, whether for business, entertainment or education. But have you ever wondered how these websites actually work? How are they built? How do browsers, computers, and mobile devices interact with the web? What skills are necessary to build a website? With almost 1 billion websites now on the internet, the answers to these questions could be your first step toward a better understanding of the internet and developing a new set of internet skills.

Jun 8th 2026
5-12 Weeks