View text source at Wikipedia
Review waiting, please be patient.
This may take 5 weeks or more, since drafts are reviewed in no specific order. There are 981 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.
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.
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.
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: