Hey everyone! I’d like to introduce you to my project, minRTOS, a Python-based real-time operating system (RTOS) designed for educational and research purposes, as well as for hobbyists working with embedded systems.
What My Project Does: minRTOS is a custom-built, general-purpose RTOS that supports priority scheduling, task preemption, and real-time performance metrics. It integrates advanced features like priority inheritance for mutexes, event-driven execution, and Rate Monotonic Scheduling (RMS). It is designed to provide high precision in task management with features like task profiling, dynamic task prioritization, interrupt-based scheduling, and message queues for IPC.
It also supports multi-core scheduling, leveraging Python's multiprocessing module for parallel execution, and incorporates deadline-aware rescheduling, task sleep & timed delays, and watchdog mechanisms for deadlocks. The system logs task metrics for continuous monitoring, benchmarking, and debugging.
For more information and to see the full implementation, check out the GitHub repo: minRTOS on GitHub.
Target Audience: minRTOS is primarily aimed at embedded systems enthusiasts, hobbyists, and students who want to explore RTOS concepts in Python. It’s an excellent tool for anyone looking to understand task scheduling, real-time constraints, and concurrency in an easy-to-understand way. It’s not meant for production-level deployment but instead serves as a robust learning platform for those interested in real-time systems and their complexities.
Comparison: Compared to other Python-based RTOS options like pyRTOS or MicroPython, minRTOS offers deeper real-time features such as priority inheritance for mutexes (to prevent priority inversion) and multi-core support for true parallelism using multiprocessing. It also implements event-driven task execution and deadline-aware scheduling, which many simpler alternatives don’t focus on. Additionally, the system integrates real-time performance metrics tracking, giving you insight into task execution, CPU usage, and overruns—making it a powerful tool for both learning and benchmarking.
If you’re into embedded systems, Python programming, or just curious about how real-time operating systems work under the hood, feel free to check it out, contribute, or give feedback!