Compare OOP-in-C vs MiROS and see what are their differences.


Simple and efficient implementation of OOP in C suitable for real-time embedded systems. (by QuantumLeaps)


MiROS (Minimal Real-Time Operating System) for ARM Cortex-M (by QuantumLeaps)
Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SaaSHub - Software Alternatives and Reviews
2 5
80 30
- -
4.2 4.8
4 months ago 6 months ago
GNU General Public License v3.0 only GNU General Public License v3.0 only
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of OOP-in-C. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-06-05.
  • path of learning the arm cortex-m embedded c programming?
    3 projects | reddit.com/r/embedded | 5 Jun 2021
    There is also a small OOP-in-C project (Object-Oriented Programming in C) introduced in the segment about Object-Oriented Programming. This project is also available on GitHub in the OOP-in-C repository.
  • Ask HN: What are relevant books as of C++20?
    2 projects | news.ycombinator.com | 13 Feb 2021
    > "... my coding in C++ still feels like doing C with classes and some STL containers like 2005. I want to progress from this state. ..."

    What's wrong with these?:

    - C++: The Core Language by Gregory Satir and Doug Brown

    - https://github.com/QuantumLeaps/OOP-in-C

    - C++ Concurrency in Action

    - C++ Templates the Complete Guide 2e

    The first is particularly geared towards C programmers, and I prefer the second one to "Inside the C++ Object Model". (There's also another popular book by a German author who covers OOP in C.)

    For the time being, I will be an "opportunist" who is waiting for the right time to switch to another language[1] - Rust:

    "To me using C++ means you are ready to give up a lot of time and energy in order to gain a complete control over certain aspects of your program. I was very much into that at the start of my career and gradually started drifting away to more immediate productivity while reserving the right to poke under the hood when necessary. This has led me to Rust and I find it to be the better natively compiled strongly & statically typed language, but YMMV of course."

    (No, the concepts I learn in C++11 and beyond won't go into waste even when C++ becomes less and less relevant in a couple of decades.)

    [1] https://news.ycombinator.com/item?id=24805717


Posts with mentions or reviews of MiROS. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-12.
  • Do World Need Another RTOS?
    2 projects | reddit.com/r/embedded | 12 Jan 2023
    You can check out the YouTube videos [about building your own minimal RTOS](https://www.youtube.com/playlist?list=PLPW8O6W-1chyrd_Msnn4LD6LBs2slJITs). This minimal RTOS (called MiROS) is used as a teaching aid. The project is also available on GitHub.
  • How can I do a context switch with rust?
    4 projects | reddit.com/r/rust | 18 Jul 2022
    I've checked out C implementations like os h and (MirOS)[https://github.com/QuantumLeaps/MiROS] but when I port them to rust (even with C2Rust) they cause hard faults too.
  • path of learning the arm cortex-m embedded c programming?
    3 projects | reddit.com/r/embedded | 5 Jun 2021
    For example, in the segment about the RTOS, you witness building a "Minimal Real-time Operating System "MiROS". The MiROS code is available on GitHub, and you can keep adding to it other features. Building a functional RTOS is a great way to learn about RTOSes.

What are some alternatives?

When comparing OOP-in-C and MiROS you can also consider the following projects:

cortexm-threads - Simple context switching library for ARM Cortex-M MCUs in Rust

modern-embedded-programming-course - Companion repository to the "Modern Embedded Systems Programming" video course.

QuarkTS - An open-source OS for embedded applications that supports prioritized cooperative scheduling, time control, inter-task communications primitives, hierarchical state machines and CoRoutines.

modern-cpp-features - A cheatsheet of modern C++ language and library features.

ChaOS - Simple RTOS for cortex-m processors

qpc - QP/C real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines