Welcome to the Embedded Linux Diploma program! This repository serves as the central hub for all materials, resources, and projects necessary to successfully complete the workshop. Whether you're diving into Linux fundamentals, exploring Raspberry Pi projects, or customizing Yocto images, you'll find everything you need here.
- Understanding Linux Kernel Architecture and Spaces
- Exploring Different Stacks Inside the Kernel
- Networking and Filesystem Operations
- Terminal Usage and Shell Scripting
- Package Management and Common Tasks
- Elements of Embedded Linux
- Toolchain, Bootloader, Kernel, and Root File System
- Understanding Build Systems and Main Components
- Exploring Different Layers and Terminologies
- Board Support Package (BSP) and Software Layers
- Application Development, Debugging, and Testing
- Fundamentals, Standard Template Library (STL), and Software Design Principles
- Object-Oriented Analysis, Design Patterns, and Concurrency
- Google Testing Framework, CMake, and Debugging Embedded Linux Applications
- Extending Linux Functionality
- Writing Various Device Drivers
Follow these steps to get up and running with the Embedded Linux Diploma program:
git clone https://github.com/orcalinux/embedded-linux-diploma.git
Each module is organized into its own directory. Choose the module you wish to start with:
cd embedded-linux-diploma/[module_directory]
Replace [module_directory]
with the desired module folder name (e.g., linux-administration
, embedded-linux
, yocto
, cpp-module
, device-drivers
).
Each module directory contains:
- Learning Materials: Presentations, notes, and documentation.
- Code Samples: Example projects and code snippets.
- README.md: Specific instructions and guidelines for the module.
- Live Sessions: Attend scheduled live workshops and lectures.
- Discussions: Engage in discussions and Q&A sessions.
- Forum: Utilize the workshop forum for queries and collaborative learning.
- Live Sessions: Attend all scheduled live sessions.
- Engagement: Actively participate in discussions and collaborative activities.
- Collaboration: Work with fellow participants to enhance your learning experience.
- Deadlines: Complete all assignments and projects by the specified deadlines.
- Quality: Strive for high-quality submissions and thorough understanding.
- Support: Seek assistance if you encounter challenges.
- Forum Usage: Use the workshop forum for all queries and discussions related to the content.
- Respect: Maintain respectful and professional communication at all times.
- Feedback: Provide and receive constructive feedback to and from peers.
- Completion Criteria: Successfully complete all modules and assessments.
- Certification: Receive your certificate upon fulfilling all requirements.
-
Documentation
-
Online Communities
-
Books and Tutorials
- The Linux Programming Interface by Michael Kerrisk
- Linux Device Drivers by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
- Embedded Linux Primer by Christopher Hallinan
- A practical guide to BitBake
- Yocto Project Quick Start