Advanced Embedded Linux Development Specialization
About Course
A Course by University of Colorado
Advanced Embedded Linux Development Specialization, This specialization provides students with the fundamentals of embedded operating systems including a working understanding of how to configure and deploy a Linux based Embedded System. Students will gain expertise in software tools and development methods which can be used to create applications and build custom Linux based Embedded Devices. This course will focus heavily on designing concurrent software for embedded systems applications using the Linux operating system. At the end of this course, students will be able to: Configure, build and deploy the Linux kernel and root filesystem from source. Build their own Embedded Linux distribution using Buildroot or Yocto frameworks. Use System Programming concepts to develop application software for Embedded Devices, including File I/O, Threading, Signals, and time related POSIX APIs. Write software for inter-thread and inter-process communication using sockets and signals. Debug concurrent software applications with command line GDB, Valgrind, and other software tools for debug, profile and tracing. Create a custom Linux Device Driver. Understand Linux Driver related development topics, including debugging techniques, concurrency techniques, timing, memory allocation. Showcase their knowledge in a final project which demonstrates course concepts on hardware
What Will You Learn?
- Development of software for Linux user or kernel applications for Embedded Devices
- Deployment of customized root filesystem or custom Linux distributions on Embedded Devices
Course Content
01. Linux System Programming and Introduction to Buildroot
-
004 01_linux-overview.mp4
00:00 -
008 02_linux-command-line.mp4
00:00 -
012 03_advanced-linux-command-line.mp4
00:00 -
016 04_scripts.mp4
00:00 -
017 01_academic-integrity-and-getting-help_exam.html
00:00 -
018 02_introducing-honorlock-exam-proctoring-pilot_instructions.html
00:00 -
021 03_assignment-1-overview.mp4
00:00 -
023 04_assignment-1-instructions_instructions.html
00:00 -
025 05_assignment-1-bash-scripting-basics_peer_assignment_instructions.html
00:00 -
029 06_course-introduction.mp4
00:00 -
033 07_course-format.mp4
00:00 -
036 08_licensing.mp4
00:00 -
040 09_environment-setup.mp4
00:00 -
044 01_system-programming.mp4
00:00 -
048 02_linux-filesystems.mp4
00:00 -
052 03_processes-and-threads.mp4
00:00 -
056 04_users-and-groups.mp4
00:00 -
060 05_system-programming-and-error-handling.mp4
00:00 -
061 06_intro-to-system-programming_exam.html
00:00 -
065 07_embedded-linux-toolchain-overview.mp4
00:00 -
069 08_logging-and-syslog.mp4
00:00 -
073 09_assignment-2-overview.mp4
00:00 -
074 10_assignment-2-instructions_ctime.3.html
00:00 -
078 11_assignment-2-file-operations-and-cross-compiler_peer_assignment_instructions.html
00:00 -
082 01_linux-file-i-o.mp4
00:00 -
086 02_linux-file-i-o-reading-and-writing-files.mp4
00:00 -
087 03_file-i-o_exam.html
00:00 -
091 04_linux-file-i-o-additional-topics.mp4
00:00 -
095 01_process-management.mp4
00:00 -
099 02_processes-and-daemons.mp4
00:00 -
100 03_processes_exam.html
00:00 -
101 04_assignment-3-part-1-instructions_instructions.html
00:00 -
106 05_assignment-3-part-1-system-calls-overview-and-demo.mp4
00:00 -
107 06_assignment-3-part-1_peer_assignment_instructions.html
00:00 -
111 01_linux-kernel-overview.mp4
00:00 -
115 02_embedded-linux-and-emulation-overview.mp4
00:00 -
119 03_building-the-linux-kernel.mp4
00:00 -
123 04_linux-root-filesystems.mp4
00:00 -
124 05_assignment-3-part-2-instructions_instructions.html
00:00 -
129 06_assignment-3-part-2-manual-linux-overview-and-demo.mp4
00:00 -
130 07_assignment-3-part-2_peer_assignment_instructions.html
00:00 -
134 01_threads-and-multithreading.mp4
00:00 -
138 02_synchronization.mp4
00:00 -
139 03_threading_quiz.html
00:00 -
140 04_assignment-4-part-1-instructions_instructions.html
00:00 -
147 05_assignment-4-part-1-threading-overview-and-demo.mp4
00:00 -
148 06_assignment-4-part-1_peer_assignment_instructions.html
00:00 -
152 01_introduction-to-buildroot.mp4
00:00 -
156 02_buildroot-builds.mp4
00:00 -
160 03_buildroot-tips.mp4
00:00 -
164 04_buildroot-tips-part-2.mp4
00:00 -
166 05_assignment-4-part-2-instructions_instructions.html
00:00 -
170 06_assignment-4-part-2-buildroot-demo.mp4
00:00 -
171 07_assignment-4-part-2_peer_assignment_instructions.html
00:00 -
175 01_signals-overview.mp4
00:00 -
179 02_signal-management.mp4
00:00 -
180 03_signals_exam.html
00:00 -
184 01_time.mp4
00:00 -
188 02_sleeping-and-timers.mp4
00:00 -
189 03_time_exam.html
00:00 -
193 01_sockets.mp4
00:00 -
194 02_assignment-5-part-1-instructions_instructions.html
00:00 -
200 03_assignment-5-part-1-native-socket-server.mp4
00:00 -
203 04_assignment-5-tips.mp4
00:00 -
204 05_assignment-5-part-1_peer_assignment_instructions.html
00:00 -
208 01_linux-system-initialization.mp4
00:00 -
212 02_embedded-debug-strategies.mp4
00:00 -
215 03_assignment-5-part-2-embedded-socket-server.mp4
00:00 -
216 04_assignment-5-part-2-instructions_instructions.html
00:00 -
220 05_assignment-5-part-2_peer_assignment_instructions.html
00:00 -
221 01__resources.html
00:00 -
links.txt
00:00
02. Linux Kernel Programming and Introduction to Yocto Project
-
005 01_introduction-to-device-drivers.mp4
00:00 -
009 02_device-drivers-overview.mp4
00:00 -
010 03_intro-to-device-drivers_exam.html
00:00 -
014 01_introduction-to-kernel-modules.mp4
00:00 -
018 02_building-and-loading-kernel-modules.mp4
00:00 -
022 03_kernel-module-design-basics.mp4
00:00 -
023 04_building-and-running-kernel-modules_exam.html
00:00 -
027 01_introduction-to-yocto.mp4
00:00 -
031 02_building-a-yocto-image.mp4
00:00 -
035 03_yocto-buildroot-comparison.mp4
00:00 -
036 04_assignment-6-part-1-instructions_instructions.html
00:00 -
042 05_assignment-6-part-1-threading-and-linked-lists.mp4
00:00 -
045 06_assignment-6-part-1-socket-server-threading-demo.mp4
00:00 -
046 07_assignment-6-part-2-instructions_customizing-images.html
00:00 -
055 08_assignment-6-part-2-yocto-environment-bringup-demo.mp4
00:00 -
056 09_assignment-6-peer-review_peer_assignment_instructions.html
00:00 -
060 01_connecting-to-userspace.mp4
00:00 -
064 02_device-driver-file-operations.mp4
00:00 -
068 03_device-driver-and-userspace-continued.mp4
00:00 -
072 04_circular-buffer-implementation.mp4
00:00 -
074 05_assignment-7-part-1-instructions_instructions.html
00:00 -
077 06_assignment-7-part-1-demo-circular-buffer-assignment-overview-and-demo.mp4
00:00 -
078 07_character-device-drivers_exam.html
00:00 -
082 01_kernel-debugging.mp4
00:00 -
083 02_kernel-debugging-techniques_exam.html
00:00 -
084 03_assignment-7-part-2-instructions_common.html
00:00 -
090 04_assignment-7-part-2-demo-yocto-and-buildroot-kernel-driver-builds.mp4
00:00 -
091 05_assignment-7-peer-review_peer_assignment_instructions.html
00:00 -
095 01_concurrency-and-race-conditions.mp4
00:00 -
099 02_kernel-critical-sections.mp4
00:00 -
103 03_additional-kernel-locking-options.mp4
00:00 -
107 04_more-fun-with-locking.mp4
00:00 -
108 05_concurrency_exam.html
00:00 -
112 01_assignment-8-overview.mp4
00:00 -
116 02_additional-kernel-debug.mp4
00:00 -
120 03_assignment-8-faq.mp4
00:00 -
122 04_assignment-8-instructions_common.html
00:00 -
129 05_assignment-8-demo-char-driver-and-multithreading-concepts.mp4
00:00 -
130 06_assignment-8-peer-review_peer_assignment_instructions.html
00:00 -
133 01_ioctl.mp4
00:00 -
136 02_sleeping-in-the-kernel.mp4
00:00 -
139 03_kernel-sleep-continued.mp4
00:00 -
142 04_poll-and-select.mp4
00:00 -
143 05_advanced-char-driver-operations_exam.html
00:00 -
147 01_assignment-9-overview.mp4
00:00 -
150 02_assignment-9-demo-advanced-char-driver-operations.mp4
00:00 -
153 03_assignment-9-instructions_instructions.html
00:00 -
154 04_assignment-9-advanced-char-driver-operations_peer_assignment_instructions.html
00:00 -
155 01__resources.html
00:00 -
links.txt
00:00
03. Linux Embedded System Topics and Projects
-
003 01_agile-overview.mp4
00:00 -
004 02_agile-overview_quiz.html
00:00 -
008 03_final-project-overview.mp4
00:00 -
009 04_final-project-proposal_instructions.html
00:00 -
010 05_final-project-peer-review_peer_assignment_instructions.html
00:00 -
011 06_introducing-honorlock-exam-proctoring-pilot_instructions.html
00:00 -
015 01_buildroot-additional-hints.mp4
00:00 -
016 02_buildroot-additional-hints_quiz.html
00:00 -
020 03_bootloaders-and-device-trees-part-1.mp4
00:00 -
024 04_bootloaders-and-device-trees-part-2.mp4
00:00 -
025 05_bootloaders-and-device-tree-part1-part-2_quiz.html
00:00 -
029 06_linux-networking-overview.mp4
00:00 -
030 07_linux-networking-overview_quiz.html
00:00 -
034 01_final-project-sprints.mp4
00:00 -
035 02_final-project-sprint-1_instructions.html
00:00 -
036 03_final-project-sprint-1_peer_assignment_instructions.html
00:00 -
040 01_linux-device-update-part-1.mp4
00:00 -
044 02_linux-device-update-part-2.mp4
00:00 -
048 03_linux-device-update-part-3.mp4
00:00 -
049 04_linux-device-update_quiz.html
00:00 -
053 01_mqtt-and-iot-platforms.mp4
00:00 -
054 02_mqtt-and-iot_quiz.html
00:00 -
058 03_read-only-root-filesystems.mp4
00:00 -
059 04_read-only-root-filesystems_quiz.html
00:00 -
063 05_application-containers-and-docker-for-embedded.mp4
00:00 -
064 06_application-containers-and-docker-for-embedded_quiz.html
00:00 -
065 01_final-project-sprint-2_instructions.html
00:00 -
066 02_final-project-sprint-2_peer_assignment_instructions.html
00:00 -
070 01_git-workflows.mp4
00:00 -
071 02_git-workflows_quiz.html
00:00 -
075 03_c-templates-and-stl.mp4
00:00 -
076 04_c-templates-and-stl_quiz.html
00:00 -
080 05_c-dependency-generation-part-1-gnu-make.mp4
00:00 -
084 06_c-dependency-generation-part-2-automake.mp4
00:00 -
088 07_c-dependency-generation-part-3-cmake.mp4
00:00 -
089 08_c-dependency-generation_quiz.html
00:00 -
090 01_final-project-sprint-3_instructions.html
00:00 -
091 02_final-project-sprint-3_peer_assignment_instructions.html
00:00 -
092 03_final-project-demo-video-and-outline_instructions.html
00:00 -
093 04_final-project-demo-video-and-outline-updates_peer_assignment_instructions.html
00:00 -
097 01_embedded-test-part-1-concepts.mp4
00:00 -
101 02_embedded-test-part-2-automated-testing.mp4
00:00 -
105 03_embedded-test-part-3-ci-cd.mp4
00:00 -
109 04_embedded-test-part-4-tdd-and-bdd.mp4
00:00 -
110 05_embedded-software-test_quiz.html
00:00 -
111 01__resources.html
00:00 -
skipped_urls.json
00:00