Linux System Programming and Introduction to Buildroot

بواسطة: Coursera

Overview

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.

Linux System Programming and Introduction to Buildroot can also be taken for academic credit as ECEA 5305, part of CU Boulder’s Master of Science in Electrical Engineering.

Syllabus

  • 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.
  • 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.
  • 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.
  • 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.

Taught by

Daniel Walkes

Linux System Programming and Introduction to Buildroot
الذهاب الي الدورة

Linux System Programming and Introduction to Buildroot

بواسطة: Coursera

  • Coursera
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • الجميع
  • English, Arabic, French, Portuguese, German, Thai, Indonesian, Spanish, Kazakh, Hindi, Russian, Swedish, Korean, Greek, Italian, Chinese, Ukrainian, Japanese, Polish, Dutch, Turkish
8.1.2PHP Version336msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (215ms)
    • Application (120ms)
    • 1 x Booting (63.93%)
      214.66ms
      1 x Application (35.82%)
      120.27ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed4.59ms
      • select * from `courses` where `slug_ar` = 'linux-system-programming-and-introduction-to-buildroot' limit 1
        3.15ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. linux-system-programming-and-introduction-to-buildroot
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-04-22 09:27:46' where `id` = 247
        550μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-22 09:27:46
        • 1. 247
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (29)
        200μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        150μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (49) and `institutions`.`deleted_at` is null
        150μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        150μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 244 limit 1
        240μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 244
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        LlX0EDZCvb9e2l90mKabmNnXa3CFn4azdomNHOzV
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/linux-...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/linux-system-programming-and-introduction-to-buildroot
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.14.83.200" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "9344164dda9db475-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "x-forwarded-for" => array:1 [ 0 => "3.14.83.200" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.14.83.200" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "9344164dda9db475-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_X_FORWARDED_FOR" => "3.14.83.200" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "13224" "REMOTE_ADDR" => "172.70.179.152" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/linux-system-programming-and-introduction-to-buildroot" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1745314065.8323 "REQUEST_TIME" => 1745314065 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Tue, 22 Apr 2025 09:27:46 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ik1veWgyZnc2RFNpd1FnZkYvQy84cnc9PSIsInZhbHVlIjoiT21zWjhndUhVVk5xSmE0WWh4RlFRcnlHNHorVzJQZE8zTW5SaGRLTjlUMk42eFY4clpid01YVzNwQXFYcEpLTWFLZFhGb1NndVRHVGJwTHFBTkhwdXRWWkFIV25zOFBZOVluazhBUnpiVFhKcGJFSTlWSzVBT29vWWJKMjVvTHIiLCJtYWMiOiIzZGNlYWU2YjQxOTk2ZWIyMjRiZTBhYWQ5NjdlMjk1MjFhZjQzMTMwMTQ3NzAwNDgwNTg5NGZiZmViOTJlNjBkIiwidGFnIjoiIn0%3D; expires=Tue, 22 Apr 2025 11:27:46 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Ik1veWgyZnc2RFNpd1FnZkYvQy84cnc9PSIsInZhbHVlIjoiT21zWjhndUhVVk5xSmE0WWh4RlFRcnlHNHorVzJQZE8zTW5SaGRLTjlUMk42eFY4clpid01YVzNwQXFYcEpLTWFLZFhGb" 1 => "laravel_session=eyJpdiI6IjZxNmZpY3liL3g4QkxuRUw1c0FaTUE9PSIsInZhbHVlIjoiSyt6NWZ6Y3RwTHNTMEpsNktJOHhiaExKeTlHZHB4MTV5K0c0N1NiU3JGQ3J6aXZjR0ZtUFJLUGR6YzFWb1FIU1pEL28zS2EvOVhjSlZhNStLQXBSYXRHcFFYM252YW83d0xDVFVSN2xrODdZd1RmSVhiWkhaSS9ZVmdOSVFmNHciLCJtYWMiOiI4YjA3YjY1ZDExNTgwODI0ZDNiNzYxMmQ5OTk1OTI5N2UzNTMyNDY0NGVlZmU0MzJhYWFkYWEyOWNkMWEyZWRiIiwidGFnIjoiIn0%3D; expires=Tue, 22 Apr 2025 11:27:46 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IjZxNmZpY3liL3g4QkxuRUw1c0FaTUE9PSIsInZhbHVlIjoiSyt6NWZ6Y3RwTHNTMEpsNktJOHhiaExKeTlHZHB4MTV5K0c0N1NiU3JGQ3J6aXZjR0ZtUFJLUGR6YzFWb1FIU1pE" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Ik1veWgyZnc2RFNpd1FnZkYvQy84cnc9PSIsInZhbHVlIjoiT21zWjhndUhVVk5xSmE0WWh4RlFRcnlHNHorVzJQZE8zTW5SaGRLTjlUMk42eFY4clpid01YVzNwQXFYcEpLTWFLZFhGb1NndVRHVGJwTHFBTkhwdXRWWkFIV25zOFBZOVluazhBUnpiVFhKcGJFSTlWSzVBT29vWWJKMjVvTHIiLCJtYWMiOiIzZGNlYWU2YjQxOTk2ZWIyMjRiZTBhYWQ5NjdlMjk1MjFhZjQzMTMwMTQ3NzAwNDgwNTg5NGZiZmViOTJlNjBkIiwidGFnIjoiIn0%3D; expires=Tue, 22-Apr-2025 11:27:46 GMT; path=/XSRF-TOKEN=eyJpdiI6Ik1veWgyZnc2RFNpd1FnZkYvQy84cnc9PSIsInZhbHVlIjoiT21zWjhndUhVVk5xSmE0WWh4RlFRcnlHNHorVzJQZE8zTW5SaGRLTjlUMk42eFY4clpid01YVzNwQXFYcEpLTWFLZFhGb" 1 => "laravel_session=eyJpdiI6IjZxNmZpY3liL3g4QkxuRUw1c0FaTUE9PSIsInZhbHVlIjoiSyt6NWZ6Y3RwTHNTMEpsNktJOHhiaExKeTlHZHB4MTV5K0c0N1NiU3JGQ3J6aXZjR0ZtUFJLUGR6YzFWb1FIU1pEL28zS2EvOVhjSlZhNStLQXBSYXRHcFFYM252YW83d0xDVFVSN2xrODdZd1RmSVhiWkhaSS9ZVmdOSVFmNHciLCJtYWMiOiI4YjA3YjY1ZDExNTgwODI0ZDNiNzYxMmQ5OTk1OTI5N2UzNTMyNDY0NGVlZmU0MzJhYWFkYWEyOWNkMWEyZWRiIiwidGFnIjoiIn0%3D; expires=Tue, 22-Apr-2025 11:27:46 GMT; path=/; httponlylaravel_session=eyJpdiI6IjZxNmZpY3liL3g4QkxuRUw1c0FaTUE9PSIsInZhbHVlIjoiSyt6NWZ6Y3RwTHNTMEpsNktJOHhiaExKeTlHZHB4MTV5K0c0N1NiU3JGQ3J6aXZjR0ZtUFJLUGR6YzFWb1FIU1pE" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "LlX0EDZCvb9e2l90mKabmNnXa3CFn4azdomNHOzV" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/linux-system-programming-and-introduction-to-buildroot" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]