Enabling Linux based Azure IoT Edge Modules on Windows IoT
Published Jan 21 2021 08:00 AM 86K Views

[Updated on June 24th 2021] Azure IoT Edge for Linux on Windows (a.k.a. EFLOW) is now generally available. You can read about it on this new blog post.


Today we are announcing the availability of Azure IoT Edge for Linux on Windows, also known as EFLOW, in public preview. EFLOW enables customers for the first time to run production Linux-based cloud-native workloads on Windows IoT. Customers retain their existing Windows IoT assets plus benefit from the power of Windows IoT for applications that require an interactive UX and high-performance hardware interaction. There is no longer a need to choose between Windows or Linux; customers can now leverage the best of both platforms.


Windows IoT is deployed in millions of intelligent edge solutions around the world in numerous industries including manufacturing, retail, medical equipment and public safety. Customers choose Windows to power their edge devices because it is an out of the box that provides a rich platform to create locked-down, interactive user experiences with natural input, provides world class security, enterprise grade device management, and 10 years of servicing allowing you to build a solution that is designed to last. In addition to all these features, customers also want to benefit from existing Linux workloads and leverage the advances in cloud-native development.


EFLOW provides the ability to deploy Linux IoT Edge modules onto a Windows IoT device. This opens a world of capabilities for commercial IoT as well as AI/ML with the availability of pre-built modules from the Azure Marketplace such as Live Video Analytics, SQL Edge, and OPC Publisher as a few examples. As a developer, you may also choose to implement your own custom modules using the Linux distribution of your choice to address specific business requirements. Running Linux modules on Windows IoT becomes a seamless of your solution.


In addition, Windows applications can easily interact with Linux modules running on the same physical device. A Windows process that provides UI or accesses cameras, sensors, or other hardware can seamlessly communicate with business logic or ML inferencing provided by a Linux module.



So how does it work?


How do you run Linux IoT Edge Modules on Windows IoT devices? Windows has had a Linux kernel for years which is used in products like Windows Subsystem for Linux (WSL). Microsoft leveraged that kernel and produced a user mode to develop an internal Linux distribution, CBL-Mariner, which is open sourced and already used in the Azure Kubernetes Service on Azure Stack HCI.


The magic of EFLOW is that we are running an optimized Linux virtual machine and Azure IoT Edge, on a Windows host. This allows you to run Linux modules from the Azure marketplace or from other sources, that simultaneously communicate with existing Windows code and the Azure cloud. And the entire solution is built, validated, and maintained by Microsoft.




The EFLOW solution includes:


Windows Admin Center
​​​​​​A ​Windows Admin Center (WAC) extension facilitates installation, configuration, and diagnostics from a remote workstation or on the local device. IT can administer the entire deployment with their existing infrastructure like any other Windows service using WAC, reducing the overall infrastructure management complexity.


Bi-directional communication between Windows processes and Linux containers provides the best of both worlds where Windows process can provide UI or hardware proxy for business logic and ML inferencing provided by the Linux containers. ​​​​​​


Curated Linux VM with Azure IoT Edge
A Linux virtual machine, based on CBL-Mariner, is purpose-built for Azure IoT Edge, validated using an automated test pipeline, and supported as a Tier 1 environment for Azure IoT Edge workloads.


Microsoft Update
Integration with Microsoft Update to keep the software up to date, including the Windows runtime components, the Mariner VM, and Azure IoT Edge.


So why does this matter?


Based on customer input, we developed EFLOW to provide an integrated end-to-end solution for workloads that normally require separate hardware and software.


Imagine a retail store with cameras recording the activity. Many network video recorders like this are powered by Windows IoT. The videos are only used when something changes or something of interest has occurred. If the store wanted to use the camera feed for local analytics or other intelligence, they may need to add a Linux box to leverage Linux AI workloads. With EFLOW, the operator can easily deploy Linux-based Azure Live Video Analytics on Windows, leveraging their existing Windows expertise and investments. They can then tie this with the new or existing ML models and have gone from having a basic video recording system to an intelligent solution that can trigger actions based on the content of the video feed.


EFLOW is available on all Hyper-V capable Windows 10 installations. This makes 100s of millions of existing devices EFLOW capable, which can easily be managed and connected through Azure.


Want to know more or where to get started?


Start by watching the IoT Show: IoT Edge for Linux on Windows 10 IoT Enterprise on Channel9.

Detailed documentation to get started is available at https://aka.ms/AzIoTEdgeforLinuxOnWindows


Stay in touch


If you want to stay up to date and get notified of future updates to Azure IoT Edge for Linux on Windows, you can register using this link. Note that the information you will share will only be used by Microsoft for the purpose of keeping you informed about this product.

Version history
Last update:
‎Nov 12 2023 04:11 PM
Updated by: