Real-time operating systems (RTOS) have been the backbone of embedded systems and Express Logic’s ThreadX has been an RTOS that has flourished over time. It is compact and modular like most RTOS systems. I recently talked with Express Logic CEO William Lamie, who is also the architect of ThreadX, to hear about what the RTOS looks like today.
William Lamie, co-founder and CEO of Express Logic, and architect of the ThreadX RTOS
How has ThreadX changed over time in terms of functions and code size?
Surprisingly, ThreadX today is very similar to the original product we introduced in 1997. Applications written for the original ThreadX build are able to run on the latest version without any modification. There has been and continues to be incremental refinement, of course, so ThreadX today is smaller and faster than the original.
Today’s ThreadX also has more functionality than the original, including priority inheritance, our unique event-chaining technology, as well as execution profiling and built-in performance metrics. ThreadX today is also safety-certified to SIL 4, ASIL D, Class C Medical, and much more. This level of safety certification requires 100% statement and 100% branch (MC/DC) test coverage, making today’s ThreadX one of the most highly tested RTOSs on the market.
How has the ThreadX microkernel architecture affected its size, functionality and acceptance compared to its predecessors?
We actually introduced a new term—picokernel—with the introduction of ThreadX in 1997. The idea behind picokernel is that it’s a small, non-layered design. This means that ThreadX has a very small function call depth and is therefore fast and uses less stack memory. Our picokernel design yields a minimal footprint on the order of 2 kB on a Cortex-M class part.
Automatic scaling is also part of the picokernel design. This means that only what’s used of ThreadX by the application is brought into the final image by the linker. The application developer doesn’t need to go through extensive compile-time configuration options—it just happens automatically via the picokernel design. ThreadX has enjoyed a size and performance advantage since its introduction in 1997 and continues to do so today. This is largely why ThreadX dominates the high-volume and SoC embedded markets.
What have you learned about the best way to handle interrupts in an increasingly complex and time-critical world?
From our perspective, the embedded world has always been time-critical, especially with regard to interrupt processing. The original ThreadX interrupt-management design was focused on minimal interrupt lockout time, allowing for extremely low-latency interrupt processing.
ThreadX has always taken advantage of saving only compiler-scratch registers on the front end of ISRs that are written in C (in these cases, the compiler manages preservation of the non-scratch registers so there is no reason to do it multiple times). In cases where no preemption is required by the ISR processing, ThreadX simply recovers the scratch registers and returns to the point of interrupt. The idea is to optimize the ISR processing as much as possible.
In sharp contrast to ThreadX ISR management, many RTOSs perform full register set saving and always return to the main scheduler on every interrupt. These RTOSs generally perform poorly or even fail under system stress. ThreadX also takes advantage of architectures with interrupt-processing enhancements such as additional register banks for interrupts, nesting interrupt priorities, etc.
How has the rise of the IoT impacted RTOS evolution?
From the RTOS perspective, the basic IoT requirements are still size and speed. A bloated RTOS will take up too much memory and cycles away from the application or the necessary networking and IoT protocols. Beyond that, the rise of the IoT has placed a greater demand on the middleware associated with the RTOS, especially networking. For example, in 1997, roughly 20% of customers required networking with ThreadX. Today, that number is well over 80%. This has fundamentally changed our business.
As a result, our main solution focus now is the X-Ware IoT Platform. This platform is powered by ThreadX, but the focus is on the overall platform rather than the RTOS by itself. The X-Ware IoT Platform is a total solution that contains file, networking, GUI, and USB solutions. Also because of the IoT, our TCP/IP stack NetX Duo now has MQTT, CoAP, and LwM2M capabilities, and last year we became an officially certified Thread solution.
Associated with the networking middleware is the need for network security protocols, which have become increasingly critical as the market becomes more aware of security hacks through IoT devices and the amount of personal information that can be transmitted by these devices. Because of IoT demand in the last several years, we have added TLS and DTLS socket-layer security to complement our existing IPsec support. This support also includes a full set of software crypto-libraries that are useful when hardware alternatives aren’t available.
What are typical devices running ThreadX and how does it address those products’ challenges?
Per VDC Research, there have been 6.2 billion deployments of the ThreadX RTOS, making it perhaps the most deployed RTOS in the world. ThreadX is deployed in environments where low overhead, high performance, and solid reliability are essential, and in products from sectors that include consumer electronics, medical and scientific instrumentation, industrial control and automation, aerospace, automotive and more. With the continued evolution of device, sensor, and cloud infrastructure, our X-Ware IoT Platform powered by ThreadX is positioned to achieve even greater growth in the years to come.
What have you had to do as a company to evolve as well?
We mentioned previously that our focus is now on our total IoT solution called X-Ware IoT Platform, which is a major change from our previous primary focus on ThreadX. Another change is our focus on specific solution attributes. From the beginning, ThreadX has always focused on being small, fast, advanced, and easy to use.
Due to customer requirements over the last several years, we have extended our solution focus to include safety and security. This focus on being small, safe, secure, advanced, fast, and easy results in what we call an industrial-grade RTOS. This is a critical differentiation for developers who simply can’t compromise on any of these aspects of their products, from medical, automotive, or industrial devices, through a wide range of consumer products.
Our intense safety focus has resulted in pre-certifications for ThreadX, FileX, and NetX Duo to IEC 61508 SIL 4, IEC 62304 Class C, ISO 26262 ASIL D, UL/IEC 60730, UL/IEC 60335, UL 1998, and EN 50128 SW-SIL 4. Both GUIX and USBX are in the process of being certified to the same set of safety standards. We believe that we are the only RTOS company to have this extensive focus on safety.
Also, part of our safety focus includes ThreadX Modules. This add-on technology to ThreadX allows application developers to build separately linked ELF images for execution under ThreadX, along with optional memory protection via MMU or MPU.
Already established as a safety leader, last year we initiated an EAL4+ Common Criteria security certification with the help of the world’s largest independent security evaluation lab, Brightsight, and the certification authority SERTIT in Norway. This EAL4+ certification will focus on IoT cloud connectivity (Azure, AWS, Google, etc.), including our products ThreadX, NetX Duo, NetX Secure TLS, and MQTT. We should have the EAL4+ certification in Q3.
We believe that in the future, a majority of applications will require both safety and security certifications from the RTOS and supporting middleware software. We are positioning Express Logic to be the leader in that space.
How do different classes of RTOSs fit developer needs?
At this point, it’s really a function of what the developer needs and how that maps to what’s supplied by the particular RTOS or RTOS vendor. For example, if a developer needs basic scheduling and no middleware, most RTOSs will at least minimally meet that need. However, if those needs are expanded—such as minimal footprint of less than 3 kB or sub-microsecond context switching—then ThreadX might be the only RTOS that can meet more stringent requirements. The takeaway is that most RTOSs can do basic scheduling, but as developer needs increase, some RTOSs won’t be able to meet them.
Once developer needs expand beyond basic scheduling, then the RTOS that can meet those needs becomes more pronounced. For example, if a developer needs a safety- or security-certified network stack, there’s basically only one: our NetX Duo TCP/IP stack. Again, due to product quality and liability concerns, we believe that a majority of developers will need safety- and/or security-certified RTOS and middleware components. Many of today’s RTOSs can’t meet what we foresee as the safety and security needs of the future.
What are your biggest challenges and opportunities in the next few years?
We have a lot of work to do over the next few years. Our primary focus will continue to be the fulfillment of our industrial-grade product promise, with a special emphasis in the safety and security areas. In fact, there’s another security certification underway currently that hasn’t been announced yet, but should be complete in Q4 this year.
As for new development activities, the IoT and security protocols are ever-changing, so we will be very busy on that front as well. We are also committed to off-the-shelf integration with the most popular semiconductor evaluation boards—over 60 free downloads are available on our website today.
This number will continue to grow each year, but it’s definitely a challenge keeping up.
The IoT represents a great opportunity for us and we have clearly positioned our offering for a leadership position in this space. We are really looking forward to the next few years.
Reference:
Express Logic’s THREADX® RTOS Surpasses 6.2 Billion Total Deployments