Skip to Main content Skip to Navigation

Babix: an Educational Multitask Kernel for Arduino Due

Abstract : I want to thank Maxime Ayrault who worked on the second version of Babix during his internship and fruitfully contributed to the implementation of mutex and semaphores. He also debugged few insidious bugs I didn't see or didn't have time to kill. 1 What is Babix? Babix is a little preemptive multitask kernel for Arduino Due I wrote to illustrate the basic principles of task-switching in an operating system. Its purpose is first of all educational, hence Babix remains simple enough to be taught. Babix is written in C as far as possible, with a little bit of assembly inlines (since it is impossible to escape from them when writing low-level operating system stuff). Processes can be dynamically created simply providing the address of their entry function. Therefore, Babix is not a complete, industrial or state-of-the-art operating system, not real-time and not fully optimized. It should normally not turn your Arduino Due into a hot and smoking device, nor make it explode. I have tortured several boards a long time without killing any of them. But, just in case, if yours gets transformed into a " I-don't-know-what " , please do not send lawyers at my door. Downloads Babix sources are freely available at Babix. Two versions can be downloaded. The " lite " version is a bit simpler, without processes termination. The " normal " version adds processes termination. The " lite " version is intended not to change o much, in order to keep it simple to understand. The " normal " version may be subject to evolutions and extensions.
Complete list of metadata

Cited literature [3 references]  Display  Hide  Download
Contributor : François Pessaux Connect in order to contact the contributor
Submitted on : Wednesday, June 13, 2018 - 11:17:23 AM
Last modification on : Wednesday, July 3, 2019 - 10:48:05 AM
Long-term archiving on: : Friday, September 14, 2018 - 2:07:28 PM


Files produced by the author(s)


  • HAL Id : hal-01814380, version 1



François Pessaux. Babix: an Educational Multitask Kernel for Arduino Due. [Technical Report] Work not affiliated to any institution. 2016. ⟨hal-01814380⟩



Record views


Files downloads