By the end of this section, you will have advanced knowledge in the following areas:

  • Mastery of C++ programming language
  • Real-time software development with C/C++ in Linux
  • Creating customized Embedded Linux distributions
  • Full understanding of the Gemstone project

1.1. Software Development

Essential for mastering C and C++ to understand core code of projects like ROS2.

  1. Learncpp.com
  2. Implementing Finite State Machine in C++
  3. Multithreading in C++ 1
  4. Multithreading in C++ 2

1.2. Realtime Linux

Essential for understanding how Linux is used in real-time deterministic systems.

  1. Mastering the FreeRTOS
  2. Emulation FreeRTOS
  3. Realtime Linux Installation
  4. Realtime Programming in Linux 1
  5. Realtime Programming in Linux 2
  6. Realtime Programming in Linux 3

1.3. Creating Embedded Linux Distribution

Essential for understanding how Gemstone’s operating system is compiled.

  1. Embedded Linux on QEMU
  2. Linux From Scratch
  3. Buildroot
  4. Debootstrap
  5. Yocto Project

1.4. Operating System Engineering

These resources are optional and require more intensive and long-term study compared to the above resources. Provided for those who want to learn the answer to “How to write an operating system”. Contains detailed information about Kernel and Processor Architectures, the heart of operating systems.

  1. MIT 6.1810: Operating System Engineering
  2. MIT 6.828: Operating System Engineering
  3. xv6 Operating System Source Codes
  4. OSDev Projects