Embedded developers now have a new option when choosing operating systems: no OS. SynthOS is a free-to-use service that builds C code specifically designed to handle all the operating system tasks an embedded developer encounters. Embedded developers can upload their code and have it returned with a complete set of C that handles mutexes and other processing priority settings.
Bob Zeidman, creator of SynthOS, actually began thinking about the project when he worked at Apple in 1999 as he worked on the company’s line of monitors.
“This guy I was working for and I came up with a whole scheme for the scheduler,” he said. “Every resource had to be checked for the mutex. He left, then as other people came on board to write code, some of them got the mutexes wrong, and we’d get these deadlock situations. We were writing on an 8-bit processor and it was a 4-bit process, so you’d think it would be easy.
“Writing the code was simple, but these deadlocks were a problem. I thought, wouldn’t it be great to automate this so people wouldn’t have to learn how to set mutexes, and we could generate a scheduler?”
Over the next 15 years, Zeidman toyed with the idea, and eventually produced SynthOS. Unfortunately, at the time, it was not fully understood by all of the developers and corporations he showed it to. He worked on other things for years, but he noticed that he got a steady stream of inquiries on SynthOS over the years.
Thus, this summer, Zeidman has built a company around the project, spurred on in no small part by the Internet of Things and the popularity of the Arduino prototyping platform.
The Arduino is SynthOS’ sweet spot, said Zeidman. The limited processing power of the platform, coupled with the complexity of running multiple tasks on the board at the same time, mean that SynthOS users can skip a lot of the headaches associated with Arduino development.
“Arduino is really big now. We wanted to show it works on Arduino,” he said. He’s currently touring the country demonstrating SynthOS with a robot built on an Arduino.