Comparing Windows Real-time Extensions
Not All Real-Time Extensions are Equal
Not all real-time extensions for Windows are implemented the same, and there are important benefits and trade-offs to consider. Contrary to what users might be led to believe, these real-time extensions do not make Windows itself a real-time OS (RTOS). Existing Windows applications are not automatically going to behave like real-time applications when a Windows real-time extension is implemented.
Typically, Windows real-time extensions implement a proprietary real-time kernel (or proprietary real-time environment) in parallel to Windows, or sometimes even embedded into Windows. In these solutions any application that wants to be a real-time application with real-time behavior must run in this proprietary kernel, or in this proprietary real-time environment. This can be a challenge for developers as they must learn and use the proprietary environment for developing their real-time applications. Furthermore, they must rely on the features that have been decided to be implemented by the manufacturer of the real-time kernel or environment, which can sometimes be lacking or take time before things are fully available.
LxWin - acontis' Solution Is Different
acontis’ new Windows real-time extension, LxWin, works differently than a traditional Windows real-time extension and provides an interesting alternative that users and implementors of real-time applications should consider.
First, LxWin uses a more segregated approach for the real-time applications and the non-real-time Windows part. Rather than using a proprietary RTOS or real-time environment, LxWin embeds a Linux hard real-time kernel on top of a hypervisor environment. This hypervisor environment is key and ensures much better isolation from Windows compared to traditional real-time extensions.
Linux-RT is the Most Popular RTOS
Additionally, LxWin uses open source Linux for the RTOS, not a proprietary RTOS. This is a key feature because over the last several years, Linux has become the most widely used operating system for industrial real-time applications. This means that developers can use all of the popular tools and packages already available from the open source community for Linux and not need to learn a new proprietary RTOS.
The use of Linux as the RTOS within a Windows real-time extension makes perfect sense for industrial applications that need real-time behavior. Originally, the real-time Linux development activity was driven by the Open Source Automation Development Lab (OSADL), and major companies like AMD, Intel, BMW, Roche, Phoenix Contact, and KUKA were all members of this organization. In 2016, as the development of real-time Linux became more and more popular, the Linux Foundation took over the management of the project to push the main-line Linux kernel itself into a real-time operating system. This goal is expected to finally be realized sometime later this year or in 2020. More information can be found at the Real Time Linux project website.
Acontis is in a unique position to see the trend for industrial applications and the operating systems that are most widely used. Our EtherCAT Master software, EC-Master, that today supports over 25 different operating systems, typically needs to run in a real-time operating system for best and fastest performance. Today, we see Linux as the most popular choice with over 35% of all EC-Master customers using Linux, and an increasing number of new customers choose Linux so we expect this percentage to increase.
We also see this trend in the broader industrial market beyond just EtherCAT applications. Leading global companies providing machine, motion, and robotics controllers, as well as PLCs, semiconductor manufacturing machines, and test and measurement solutions, have all started to implement Linux-RT instead of other legacy real-time operating systems.
Challenges Making Linux Kernel Real-time
There are, of course, still some challenges to using Linux for real-time applications. One of the most difficult tasks is configuring the Linux kernel for real-time behavior. Until the main-line Linux kernel is fully realized as a real-time kernel, developers today have to patch the kernel and configure the kernel specially to achieve real-time. This is often referred to as the RT-PREEMPT patch, but in reality can be many patches and not all of them are working perfectly.
With LxWin however, developers do not need to bother at all with the Linux kernel configuration and build. The Linux kernel that comes with LxWin is already appropriately patched, configured, and tested as a hard real-time kernel with deterministic behavior. As a result, extremely short cycle times down to 50 microseconds can be achieved.
Benefits of Linux
Besides being a real-time kernel, Linux itself brings with it many useful benefits. Sophisticated features like sockets, a full POSIX API, user space / kernel space isolation, multitasking and multiprocessing are all available. For almost any hardware available on the market today, a Linux driver is available. This means that developers do not need to wait for a specific driver to be implemented and released by the manufacturer of a proprietary real-time extension platform. Finally, with Linux there is a wealth of software libraries, protocol stacks, and middleware (both open source as well as closed source commercial products) available: C++ STL, Boost, Corba, OPC/UA, DDS, AVB/TSN, EtherCAT, PROFINET, Software-based PLC, motion control Libraries, CNC solutions, and many, many more.
Of course, due to the open source nature of Linux, all source code including the Linux components of LxWin shipped by acontis are open source as well, and customers are even able to debug deep into the kernel if necessary. Customers of LxWin can have the entire Linux side of the solution in source code ensuring maximum control over their software. This would never be possible with a proprietary RTOS implementation.
Finally, developers using LxWin do not need to give up their preferred Microsoft development environment. Software development and debugging of real-time applications is fully supported using Microsoft Visual Studio.