OS and Drivers: The IoT Next Step
So while fiddling with the basics of IoT, such as building a morse code device using Arduino, I was constantly thinking of using this opportunity to push ahead with the next phase in my IoT learning. I naturally started to think bigger.
Why just put a bare minimum looping program on a bare minimum board? Why not a full Operating System? And while that thread had a natural inclination to progress towards Raspberry Pi and Raspian OS, I was both distracted by thoughts of how the OS would work in such restricted environments and thrilled at the thoughts of how a Linux device driver might work, integrating my IoT devices as just another file under the /dev mount point.
Here are some of the Operating System choices I came across:
The Zephyr Project: Quoting the homepage of the project linked here - “The Zephyr™ Project is a scalable real-time operating system (RTOS) supporting multiple hardware architectures, optimized for resource constrained devices, and built with security in mind. This Linux Foundation hosted project embraces open source development values and governance on its mission to unite leaders from across the industry to produce a best-in-breed solution.”
The Riot OS: Apparently the Riot OS has been around for a while and with excellent support for low power, 32bit, 16bit or even 8bit devices while still offering some pretty nifty features such as Dynamic Memory Management, Multithreading, Real time performance, support for C & C++ while still coming at a low foot print package requiring only 1.5kB RAM and 5 kB ROM.
Apache MyNewt: Apache’s wireless savvy, hardware agnostic OS.
RISC OS: One of the oldest Operating Systems on the list, this almost qualifies for a vintage tag! Originally released in 1987, allegedly it’s origins can be traced to the developers of the ARM microprocessor itself. I am itching to play around with this one real soon.
Android Things: This article would not even be close to complete without mentioning Google’s IoT child. Even with the promise of easy “Android” style development, this is not really high on my list of Operating Systems for IoT I want to try out. Primary reasons being the limited support for Hardware (runs only on Microprocessors not Microcontrollers), and also Google’s “prying eyes”.
Here’s a quick comparison chart I was able to draw up with some of the popular available hardware options and prices in India as well as the supported Operating Systems (Please note that prices may be volatile/inaccurate).
Stay tuned for upcoming articles with detailed reviews on some of these operating systems mentioned here.