Review waiting, please be patient.
This may take 7 weeks or more, since drafts are reviewed in no specific order. There are 1,221 pending submissions waiting for review.
Where to get help
How to improve a draft
You can also browse Wikipedia:Featured articles and Wikipedia:Good articles to find examples of Wikipedia's best writing on topics similar to your proposed article. Improving your odds of a speedy review To improve your odds of a faster review, tag your draft with relevant WikiProject tags using the button below. This will let reviewers know a new draft has been submitted in their area of interest. For instance, if you wrote about a female astronomer, you would want to add the Biography, Astronomy, and Women scientists tags. Editor resources
Reviewer tools
|
Developer | Juan Camilo Gómez Cadavid |
---|---|
Written in | C/C++ |
OS family | Real-time operating systems |
Working state | Current |
Source model | Open-source software |
Initial release | 2016 |
Latest release | 7.3.3 |
Marketing target | Embedded systems |
Available in | C/C++ |
Platforms | ARM (ARM7, ARM9, Cortex-M0, -M0+, -M1, -M2, -M3 -M4, -M7, -A, -R4), Atmel AVR, AVR32, HCS12, MicroBlaze, Cortus (APS1, APS3, APS3R, APS5, FPF3, FPS6, FPS8), MSP430, PIC, dSPIC, Renesas H8/S, SuperH, RX, x86, 8052, Coldfire, V850, 78K0R, Fujitsu series MB91460, MB96340, Nios II, TMS |
Kernel type | Cooperative Real-Time Microkernel |
License | MIT |
Official website | https://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
editQuarkTS[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- Prioritized cooperative scheduling.
- Time control (Timed tasks and software timers)
- Inter-Task communication primitives, queues, notifications and event-flags.
- State-Machines ( hierarchical support )
- Stackless Co-routines.
- AT Command Line Interface (CLI)
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
editQuarkTS 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
editReferences
edit- ^ "OSRTOS - Top Open Source Real-Time Operating Systems (RTOS)". www.osrtos.com. Retrieved 2024-10-09.
- ^ a b "QuarkTS OS". kmilo17pet.github.io. Retrieved 2024-10-11.
- ^ a b G.C, J. Camilo (2024-10-08), kmilo17pet/QuarkTS, retrieved 2024-10-09
- ^ Cortadella, Jordi; Kondratyev, Alex; Lavagno, Luciano; Passerone, Claudio; Watanabe, Yosinori (2002). "Quasi-Static Scheduling of Independent Tasks for Reactive Systems". In Esparza, Javier; Lakos, Charles (eds.). Application and Theory of Petri Nets 2002. Lecture Notes in Computer Science. Vol. 2360. Berlin, Heidelberg: Springer. pp. 80–100. doi:10.1007/3-540-48068-4_7. ISBN 978-3-540-48068-6.
- ^ 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.
- ^ 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.
- ^ "Preemptive or Cooperative Multitasking?". www.on-time.com. Retrieved 2024-10-09.
- ^ "Understanding The Pros And Cons Of Concurrency". pwskills.com. 2024-10-03. Retrieved 2024-10-09.
- ^ "Unstop - Competitions, Quizzes, Hackathons, Scholarships and Internships for Students and Corporates". unstop.com. Retrieved 2024-10-09.
- ^ "MISRA". Retrieved 2024-10-09.