QuarktTS
DeveloperJuan Camilo Gómez Cadavid
Written inC/C++
OS familyReal-time operating systems
Working stateCurrent
Source modelOpen-source software
Initial release2016
Latest release7.3.3
Marketing targetEmbedded systems
Available inC/C++
PlatformsARM (ARM7, ARM9, Cortex-M3, -M4, -M7, -A, -R4), Atmel AVR, AVR32, HCS12, MicroBlaze, Cortus (APS1, APS3, APS3R, APS5, FPF3, FPS6, FPS8), MSP430, PIC, Renesas H8/S, SuperH, RX, x86, 8052, Coldfire, V850, 78K0R, Fujitsu series MB91460, MB96340, Nios II, TMS570, RM4x, Espressif ESP32, RISC-V (e.g. SHAKTI)
Kernel typeCooperative Real-Time Microkernel
LicenseMIT
Official websitehttps://github.com/kmilo17pet/QuarkTS
Support status
Active

QuarkTS is an open-source, cross-platform embedded operating system for resource-constrained devices that uses a cooperative multitasking scheduler[1][2]. It is distributed under the MIT License.

Implementation

edit

QuarkTS[3] is designed for resource-constrained microcontrollers, featuring a small and simple kernel. It is primarily written in the C programming language for ease of portability and maintenance, though there is also a port written in C++11 (QuarkTS++), as well as a library for Arduino. QuarkTS does not have specific instructions for a target hardware, which makes it potentially portable to any platform and/or C/C++ compiler.[3]

The operating system is built on top of a real-time cooperative quasi-static scheduler[4][5] based on a Time Triggered Architecture (TTA)[6] implementing a specialized Round-Robin scheme with a linked-chain and an event queue to provide true FIFO (First-In, First-Out) priority scheduling. This scheduling approach offers significant benefits over preemptive scheduling, since tasks manage their own life cycle, fewer re-entrance problems arise and tasks are not interrupted arbitrarily by other tasks but only at points defined by the programmer[7]. This allows users to build stable and predictable event-driven multitasking embedded software without having to worry about common pitfalls of concurrent approaches, such as resource sharing issues, race conditions, and deadlocks.[8]

The design goal of QuarkTS is to provide functionality using a small, simple, and robust implementation, making it ideal for resource-constrained microcontrollers. In such environments, a fully preemptive RTOS may be overkill[9], introducing unnecessary complexity in firmware development. Due to its size and feature set, QuarkTS is intended to bridge the gap between full-featured RTOSes and bare-metal programming. QuarkTS is tailored for embedded developers seeking more functionality than basic task schedulers offer, while avoiding the overhead and complexity of a full RTOS, yet still providing the robustness and safety typical of larger systems.

Key Features

edit

QuarkTS also complies with most of the Motor Industry Software Reliability Association (MISRA) MISRA-C-2012/MISRA-C++:2008[10] and the SEI CERT C coding standards in order to provide a safe, reliable, and secure foundation for embedded applications.

Supported Architectures

edit

QuarkTS has no direct hardware dependencies, allowing it to be portable across many platforms and C compilers[2].

The following cores have successfully proved to run QuarkTS:

See also

edit

References

edit
  1. ^ "OSRTOS - Top Open Source Real-Time Operating Systems (RTOS)". www.osrtos.com. Retrieved 2024-10-09.
  2. ^ a b "QuarkTS OS". kmilo17pet.github.io. Retrieved 2024-10-11.
  3. ^ a b G.C, J. Camilo (2024-10-08), kmilo17pet/QuarkTS, retrieved 2024-10-09
  4. ^ Cortadella, Jordi; Kondratyev, Alex; Lavagno, Luciano; Passerone, Claudio; Watanabe, Yosinori (2002). Esparza, Javier; Lakos, Charles (eds.). "Quasi-Static Scheduling of Independent Tasks for Reactive Systems". Application and Theory of Petri Nets 2002. Berlin, Heidelberg: Springer: 80–100. doi:10.1007/3-540-48068-4_7. ISBN 978-3-540-48068-6.
  5. ^ Cortés, Luis Alejandro; Eles, Petru; Peng, Zebo (2004-02-16). "Quasi-Static Scheduling for Real-Time Systems with Hard and Soft Tasks". Proceedings of the Conference on Design, Automation and Test in Europe - Volume 2. DATE '04. USA: IEEE Computer Society: 21176. ISBN 978-0-7695-2085-8.
  6. ^ Pont, M. J. (2008-11-01). "Applying time-triggered architectures in reliable embedded systems: challenges and solutions". E & I Elektrotechnik und Informationstechnik. 125 (11): 401–405. doi:10.1007/s00502-008-0587-z. ISSN 1613-7620.
  7. ^ "Preemptive or Cooperative Multitasking?". www.on-time.com. Retrieved 2024-10-09.
  8. ^ "Understanding The Pros And Cons Of Concurrency". pwskills.com. 2024-10-03. Retrieved 2024-10-09.
  9. ^ "Unstop - Competitions, Quizzes, Hackathons, Scholarships and Internships for Students and Corporates". unstop.com. Retrieved 2024-10-09.
  10. ^ "MISRA". Retrieved 2024-10-09.
edit