#3471: What OS Actually Runs Inside a Siemens PLC?

Siemens, Rockwell, Beckhoff — the OS choices inside modern PLCs are more varied than you'd expect.

Featuring
Listen
0:00
0:00
Episode Details
Episode ID
MWP-3648
Published
Duration
33:33
Audio
Direct link
Pipeline
V5
TTS Engine
chatterbox-regular
Script Writing Agent
deepseek-v4-pro

AI-Generated Content: This podcast is created using AI personas. Please verify any important information independently.

The operating systems inside Programmable Logic Controllers are far more varied than most people realize. Siemens' older S7-300 and S7-400 series run a proprietary, monolithic firmware developed entirely in-house — no process isolation, no memory protection, everything runs in privileged mode. But the newer S7-1200 and S7-1500 controllers shifted to Nucleus, a hard real-time OS from Mentor Graphics (which Siemens acquired in 2017). Nucleus provides a proper kernel with scheduler, memory management, and inter-process communication — a meaningful security boundary that didn't exist in the older architecture.

Rockwell Automation took a different path, using VxWorks from Wind River in their ControlLogix and CompactLogix controllers. Beckhoff went even further with TwinCAT, a dual-kernel architecture that runs a real-time kernel alongside a standard Windows OS on commodity PC hardware. The PLC logic executes in the real-time context while Windows handles HMI, logging, and web interfaces. QNX appears in specialized process industry controllers with extensive safety certifications. Linux has been cautiously emerging, typically in edge gateways and data aggregators rather than the control level itself, though the PREEMPT_RT patch (mostly mainlined as of kernel 6.12) is narrowing the gap.

The Codesys runtime adds another layer — a development environment and runtime engine that sits atop various operating systems, allowing the same IEC 61131-3 program to run on hundreds of hardware platforms. This abstraction creates portability but also monoculture risk, as demonstrated by the 2022 Codesys vulnerabilities that affected roughly a thousand device manufacturers. The industry's trajectory is toward more layers and more complexity — driven by demands for motion control, web servers, OPC UA connectivity, and security isolation — even as each new layer introduces its own attack surface.

Downloads

Episode Audio

Download the full episode as an MP3 file

Download MP3
Transcript (TXT)

Plain text transcript file

Transcript (PDF)

Formatted PDF with styling

#3471: What OS Actually Runs Inside a Siemens PLC?

Corn
Daniel sent us this one — he's been thinking about PLCs again, which we've touched on before. The question is about what's actually running on these things at the operating system level. Are we talking bare-metal execution, like an ESP32 where the code runs right on the hardware with guaranteed timing and nothing between you and the metal? Or is there a real kernel in there, with layers, a scheduler, maybe even something that looks vaguely like the stacks we know from user-facing computing? And he's right that Siemens dominates the landscape, so that's our natural starting point. It's a deceptively simple question that opens up a whole world.
Herman
It really does. And the answer is — it's both, depending on where you look, and the history of how we got here is genuinely fascinating. Let me start with the Siemens lineup because that's what most people encounter. The S7-300 and S7-400 series, which have been the workhorses of industrial automation for decades — those run a proprietary real-time operating system developed entirely in-house by Siemens. It's not VxWorks, it's not QNX, it's not anything you can buy off the shelf. Siemens calls it the S7 firmware, and it's a closed, tightly integrated stack that handles everything from the scan cycle execution to the communication processors. But here's where it gets interesting — the newer S7-1200 and S7-1500 controllers, which have been rolling out over the last decade or so, they actually shifted to a different foundation.
Corn
Shifted to what?
Herman
This is one of those details that doesn't get talked about much outside of industrial security circles, but the S7-1200 and S7-1500 run on a real-time operating system called Nucleus. It's made by a company called Mentor Graphics, which is now part of Siemens actually — Siemens acquired Mentor back in 2017. So in a roundabout way, Siemens bought the company that makes the operating system their newer PLCs run on. Nucleus is a proper RTOS. It has a kernel, it has a scheduler, it manages memory, it handles inter-process communication. It's not a general-purpose OS like Linux or Windows, but it's absolutely a real operating system with layers and abstractions.
Corn
The newer ones are actually more complex under the hood than the older ones. That feels counterintuitive — you'd think the trend would be toward stripping things down.
Herman
You'd think. But the reality is that modern PLCs are being asked to do things that the old S7-300 and S7-400 firmware was never designed for. Motion control, integrated safety, web servers for diagnostics, OPC UA connectivity, Ethernet-based fieldbus protocols like PROFINET with isochronous real-time requirements. The S7-1500 in particular is basically an industrial computer that happens to be shaped like a PLC. It's running a web server on port 80 or 443 right out of the box. That's not bare-metal firmware territory anymore. You need a real operating system to manage all those concurrent tasks without blowing your cycle time guarantees.
Corn
"execution guaranteed" is still the north star, but the path to getting there now involves a scheduler juggling multiple things.
Herman
And Nucleus is designed for exactly that. It's what's called a hard real-time operating system. The scheduler guarantees that your highest-priority task runs within a bounded amount of time, every single time. It's preemptive, it's deterministic, and it's been used in everything from medical devices to satellite systems. Siemens didn't pick it because they wanted bloat. They picked it because the old monolithic firmware couldn't scale to what customers were demanding.
Corn
That's Siemens. But you said "both" — what's the other side of this?
Herman
The other side is the broader PLC landscape. Because Siemens might be the biggest player, but they're not the only one, and different manufacturers made different bets. Rockwell Automation, which is the other giant — their ControlLogix and CompactLogix controllers run on VxWorks. That's Wind River's RTOS, and it's probably the most famous real-time operating system in the world. It's flown on Mars rovers. It's in the Boeing 787. It's everywhere. And Rockwell's been using it for decades.
Corn
If Siemens is the in-house-and-then-bought-Nucleus story, Rockwell is the off-the-shelf-and-proud-of-it story.
Herman
And then you've got companies like Beckhoff, which took an even more radical approach. Beckhoff's TwinCAT system doesn't run on a traditional PLC architecture at all. It runs on top of Windows. You take a standard Windows PC, you install TwinCAT, and it adds a real-time kernel that runs alongside the Windows kernel. The PLC logic executes in the real-time context, completely isolated from Windows, with deterministic cycle times down to fifty microseconds. Meanwhile Windows handles the HMI, the database logging, the web interface. It's a dual-kernel architecture that basically says: why build dedicated PLC hardware when you can just carve out a real-time partition on commodity hardware?
Corn
That's wild. So you've got Windows running Outlook and Excel on the same box that's controlling a factory line.
Herman
That's exactly the point Beckhoff makes. They call it PC-based control. It's been their whole philosophy since the company was founded in the 1980s by Hans Beckhoff. The industrial PC is the controller. And it works — TwinCAT is deployed in some of the largest manufacturing facilities in the world. But it also introduces a threat surface that a traditional PLC doesn't have. If someone compromises the Windows side, they might not be able to touch the real-time kernel directly, but they can certainly mess with the engineering workstation that's programming it.
Corn
Right, because the programming environment is sitting in Windows land. So even if the runtime is isolated, the development toolchain isn't.
Herman
That's been the source of a lot of security discussions over the past few years. But getting back to the operating system question — you also have manufacturers using QNX. That's the BlackBerry-owned RTOS, and it's used in some specialized controllers, particularly in the process industries. It's also the basis for a lot of safety-certified systems because QNX has a long history of certifications for things like IEC 61508, which is the functional safety standard for industrial systems.
Corn
We've got proprietary Siemens firmware, Nucleus, VxWorks, Windows-plus-real-time-kernel, QNX. That's already more variety than I think most people expect when they hear "PLC.
Herman
We haven't even gotten to the open-source side yet. That's where things get really interesting.
Corn
Linux is showing up in PLCs now?
Herman
It's been showing up for a while, but cautiously. The main challenge with Linux is that the stock kernel isn't hard real-time. You can add the PREEMPT_RT patch, which brings the kernel much closer to real-time performance, and that patch has been gradually mainlined over the years — as of kernel version 6.12, which came out in late 2024, most of the PREEMPT_RT code is finally in the mainline kernel. But it's still not the same as a purpose-built RTOS with formal guarantees. For a lot of industrial applications, "close to real-time" isn't good enough.
Corn
Because "close" means you missed a cycle, and missing a cycle means your bottle-filling machine just overfilled three hundred bottles.
Herman
Or worse — your safety system didn't respond within the required safety interval. So Linux tends to show up in the places where the real-time requirements are softer. Edge gateways, data aggregators, protocol converters. Things that sit next to the PLC and handle the IT-to-OT bridge. Companies like Advantech and Moxa build industrial Linux devices that talk to PLCs over PROFINET or EtherNet/IP and then push data up to cloud platforms. That's where Linux is dominant. But at the actual control level? The PLC itself? It's still overwhelmingly RTOS territory.
Corn
There's an interesting exception though — Codesys. That's not an operating system, but it's a runtime that sits on top of various operating systems, right?
Herman
Codesys is a development environment and a runtime engine, and it's massively important but often overlooked. It originated from a German company called 3S-Smart Software Solutions, now part of the Codesys Group. The idea is that you write your PLC program once in the Codesys IDE using IEC 61131-3 languages — ladder logic, structured text, function block diagram — and then you can deploy that same program to hundreds of different hardware platforms from different manufacturers. Underneath, the Codesys runtime is running on whatever OS the hardware uses. So you might have Codesys on top of Linux, on top of VxWorks, on top of Windows, on bare metal. It's an abstraction layer that makes the underlying OS somewhat invisible to the application developer.
Corn
Which is great for portability and absolutely terrifying from a supply-chain perspective. If there's a vulnerability in the Codesys runtime, it doesn't matter what OS you're running underneath.
Herman
We saw exactly that scenario. In 2022 there was a series of critical vulnerabilities disclosed in the Codesys runtime — CVE-2022-31800 through 31806, I believe. Remote code execution, denial of service, the full buffet. And because Codesys is used by something like a thousand different device manufacturers, the blast radius was enormous. That's the tradeoff of abstraction layers. They make development faster and cheaper, but they also create monoculture risk.
Corn
A thousand manufacturers running the same runtime. That's the industrial equivalent of every website running the same JavaScript library.
Herman
It's exactly that. And it's a dynamic that the industrial world is still grappling with. In IT, we've had decades of learning to manage software supply chains. In OT, a lot of these devices were designed in an era when nobody imagined they'd be connected to anything except maybe a proprietary fieldbus. The idea that someone in a different country could reach out and touch a PLC over TCP/IP just wasn't part of the threat model.
Corn
Let me pull us back to the core of the question. The ESP32 comparison. Is that fair?
Herman
For some PLCs, it's surprisingly close. An ESP32 runs FreeRTOS or sometimes bare-metal code in the Arduino environment. You write your logic, it compiles down to machine code, and it runs directly on the processor with nothing between your code and the hardware except maybe a thin task scheduler. That's essentially what the older S7-300 and S7-400 firmware is doing. It's a monolithic binary that handles everything — the scan cycle, the I/O update, the communication tasks — all in a single executable image running directly on the processor. No process isolation, no memory protection between tasks, no user space versus kernel space. Everything runs in privileged mode.
Corn
Which is great for performance and determinism, and really bad for security. If any part of that firmware has a bug, you've got full system compromise.
Herman
That's exactly why the industry has been moving toward systems like Nucleus and VxWorks that provide memory protection and process isolation. The S7-1500 with Nucleus, for example — the real-time control logic runs in one context, the web server runs in another, the PROFINET stack runs in a third. If someone compromises the web server, they don't automatically own the control logic. That's a meaningful security boundary that simply didn't exist in the older architecture.
Corn
The trajectory is toward more layers, not fewer. More complexity under the hood, in service of both more features and more security isolation.
Herman
That's the tension. Every layer you add is a potential source of bugs and vulnerabilities. But the alternative — a monolithic firmware blob where everything runs in the same address space — is arguably worse in a connected world. At least with proper isolation, you can contain the damage. It's the same argument we've been having in general-purpose computing for decades, just arriving late to the industrial world.
Corn
There's another dimension to this that Daniel's question hints at but doesn't explicitly ask. What about the development workflow? When you're programming one of these things, are you aware of the operating system at all?
Herman
And that's by design. The whole philosophy of PLC programming, going back to the original Modicon 084 in 1969, is that the control engineer should not need to know anything about the underlying computer. You program in ladder logic, which looks like electrical schematics, because the target user was an electrician who understood relay circuits, not a software developer who understood C. That philosophy has persisted. The Siemens TIA Portal, the Rockwell Studio 5000, the Codesys IDE — they all present a world where you're programming a "controller," not a computer running an operating system.
Corn
It's the ultimate abstraction. The OS is someone else's problem.
Herman
Until it isn't. Until you need to do something the abstraction doesn't cover. Until there's a vulnerability in the runtime and you need to understand what's actually happening. Until you're trying to integrate a PLC with a modern DevOps pipeline and suddenly you're staring at firmware versions and kernel configurations. The abstraction leaks.
Corn
That's the moment when an industrial controls engineer discovers they've been a systems programmer all along and nobody told them.
Herman
It's happening more and more. The convergence of IT and OT means that the traditional walls are crumbling. You've got PLCs with embedded web servers, with OPC UA endpoints, with MQTT clients, with REST APIs. These are not relay replacements anymore. They're network-connected computing devices that happen to have screw terminals on the front. And the people managing them increasingly need to understand both worlds.
Corn
Let's talk about the real-time guarantee for a second, because that's the thing that separates all of these from a Raspberry Pi running Python. What does "hard real-time" actually mean in practice for a PLC?
Herman
It means the system can guarantee that a specific task will complete within a specific time window, every single time, no exceptions. A typical PLC scan cycle works like this: read all the inputs, execute the control program, write all the outputs, handle communication, repeat. That cycle has a deadline. For a motion control application, that deadline might be one millisecond or even less. If you miss the deadline, the physical process goes wrong — the motor overshoots, the valve doesn't close in time, the robot arm drifts out of position.
Corn
A general-purpose OS like Windows or standard Linux can't make that guarantee because the scheduler might decide to run a disk defragmentation or a virus scan at exactly the wrong moment.
Herman
The technical term is "unbounded latency." In a general-purpose OS, the time between when an interrupt fires and when your handler runs is not predictable. It depends on what else is happening in the system. In a hard real-time OS, that latency is bounded and documented. VxWorks, for example, guarantees interrupt latency under a microsecond on most supported hardware. Nucleus is in the same range. The Siemens proprietary firmware is probably even tighter because it's so stripped down.
Corn
When Daniel compares it to an ESP32, he's not wrong in spirit. The ESP32 running FreeRTOS is also making real-time guarantees, just at a much smaller scale.
Herman
The ESP32 is a microcontroller. A PLC like the S7-1500 has a proper applications processor — often an ARM Cortex-A series or something comparable — with a memory management unit, cache, multiple cores. It's a much more capable piece of silicon. But the software architecture shares a lot of DNA. The RTOS on the PLC is doing what FreeRTOS does on the ESP32, just with more features and more formal verification.
Corn
I want to circle back to something you mentioned earlier about Siemens acquiring Mentor Graphics. That was 2017. That means Siemens has owned the company that makes the OS for their flagship PLCs for almost a decade now. Has that changed anything visible?
Herman
It's hard to see from the outside, but almost certainly yes. When you own the OS vendor, you can drive the roadmap. You can say, "we need these specific features for our next-generation controller," and they become priorities. You also get deeper integration. The S7-1500's firmware and the Nucleus kernel are probably co-developed to a degree that wouldn't be possible if Mentor were an independent company. And from a security perspective, owning the full stack means you're not waiting on a third party to patch vulnerabilities.
Corn
Though it also means if there's a systemic issue, it's entirely your problem.
Herman
No one else to blame. But Siemens seems comfortable with that. They've been vertically integrating for years — they bought UGS for product lifecycle management software, they bought Mentor for electronic design automation and the RTOS, they've built out their own chip design capabilities. The vision is clearly to own the entire industrial automation stack from silicon to cloud.
Corn
Which is a very different philosophy from the Beckhoff approach of "just use Windows and commodity hardware.
Herman
It's the classic vertical integration versus horizontal platform play. Siemens wants to be Apple. Beckhoff wants to be more like Android — or at least like the PC ecosystem. Both approaches have proven successful, and they coexist because different customers have different priorities. A pharmaceutical plant with regulatory validation requirements might prefer the fully integrated Siemens stack where everything is certified together. A flexible manufacturing line that needs to integrate with all sorts of IT systems might prefer the Beckhoff approach.
Corn
What about safety? You mentioned IEC 61508 earlier. How does the operating system choice affect safety certification?
Herman
Safety certification is one of the biggest drivers of OS choice in industrial systems. If you're building a safety instrumented system — something that shuts down a reactor or stops a press before it crushes someone's hand — you need to prove to a certification body that your software won't fail in dangerous ways. That means you need an OS that has either been pre-certified or that you can certify yourself. VxWorks has a long history of safety certifications, including DO-178C for avionics and IEC 61508 for industrial. QNX has the same. Nucleus has been certified for medical devices and industrial safety. Siemens' proprietary firmware is certified as part of the overall S7 system.
Herman
Linux is a nightmare for safety certification. The kernel is millions of lines of code that change constantly. The development process is not documented to the level that certification bodies require. There have been efforts — the ELISA project, the Linux Foundation's Enabling Linux in Safety Applications initiative — but it's slow going. If you need SIL 3 or SIL 4 certification, you're almost certainly not running Linux directly. You might run a tiny certified RTOS alongside Linux, with the safety functions on the RTOS and everything else on Linux.
Corn
The safety-critical stuff stays on the tiny, verified kernel, and the fancy web dashboards and cloud connectors live on the big, complex OS.
Herman
That's the pattern, and I think we'll see more of it. Heterogeneous systems where a single piece of hardware runs multiple operating systems side by side, with hardware-enforced isolation between them. The PLC becomes a system-on-chip with an RTOS for control, Linux for connectivity, and maybe a separate security processor handling authentication and encryption.
Corn
That sounds expensive.
Herman
It is, but it's getting cheaper. The silicon to do that kind of virtualization used to require expensive FPGAs or dedicated multi-chip solutions. Now you can get ARM processors with TrustZone and hardware virtualization support for a few dollars. The economics are shifting.
Corn
Let's step back to something more concrete. If someone is looking at a PLC in a factory today — say a Siemens S7-1500 running a production line — and they want to know what operating system is inside, how would they find out? Is it documented anywhere?
Herman
It's not advertised on the spec sheet, which is part of why Daniel's question is so good. Siemens doesn't say "powered by Nucleus" in their marketing materials. The documentation calls it the "S7 firmware" or the "controller operating system." You have to dig into technical manuals, security advisories, or firmware analysis to figure out what's actually running. The industrial automation industry has historically treated the OS as an implementation detail, not a selling point.
Corn
Which is wild when you think about it. In every other domain of computing, the operating system is a major part of the product identity. Nobody buys a phone without knowing whether it runs iOS or Android. But in industrial automation, you can spend a hundred thousand dollars on controllers and never be told what kernel they boot.
Herman
That's starting to change, partly because of security. When the ICS-CERT advisory comes out saying "this version of VxWorks has a critical vulnerability," asset owners suddenly need to know if any of their devices are running VxWorks. The old attitude of "it doesn't matter, it's just a PLC" becomes untenable when you're trying to do vulnerability management across a fleet of thousands of devices.
Corn
The abstraction is being forcibly peeled back by the security requirements of the connected world.
Herman
And it's uncomfortable for everyone. The vendors don't want to expose their internals. The users don't necessarily want the complexity. But the alternative is running devices with known vulnerabilities because you can't figure out what's inside them.
Corn
We've been talking mostly about the big players. What about the smaller or more specialized PLCs? Are there interesting outliers in the OS landscape?
Herman
A few worth mentioning. There's a whole category of soft PLCs — software-only controllers that run on standard industrial PCs. We mentioned Beckhoff with TwinCAT, but there's also Bosch Rexroth with their ctrlX CORE, which is built on top of Linux with a real-time kernel and uses an app-based architecture. They're essentially saying the PLC is an app platform, and you can download control functions from an app store. It's a radical rethinking of what a controller is.
Corn
An app store for factory control. That's either brilliant or terrifying.
Herman
Bosch Rexroth launched ctrlX World in 2020 and it's been gaining traction, particularly in Europe. The idea is that you have a base Linux system with real-time extensions, and then you add control functions as containerized apps. Want PLC functionality? Download the PLC app. Want motion control? Download the motion app. Want an OPC UA server? There's an app for that. It's the smartphone model applied to industrial automation.
Corn
Each app is a container, so there's isolation between them?
Herman
Yes, they use containerization — Docker-style containers or something similar — to isolate the apps. It's a very modern software architecture applied to a domain that's been running the same basic model for fifty years.
Corn
If the Siemens approach is vertical integration and the Beckhoff approach is dual-kernel on Windows, the Bosch Rexroth approach is Linux plus containers plus app store. That's three fundamentally different philosophies, all coexisting in the same market.
Herman
They're all successful in their niches. That's what makes this space so interesting. It's not a monoculture. There's genuine architectural diversity, driven by different assumptions about what a controller should be and who should program it.
Corn
You mentioned containerization. Are we going to see Kubernetes on the factory floor?
Herman
People are trying. There's a whole edge computing movement that wants to bring cloud-native patterns to industrial environments. The challenge is that Kubernetes wasn't designed for hard real-time. The control plane itself introduces latency and unpredictability. But for the non-real-time parts — the data processing, the analytics, the machine learning inference — it makes a lot of sense. I've seen architectures where the real-time control runs on a traditional PLC or RTOS, and then a separate edge node running Kubernetes handles everything else, with a deterministic link between them.
Corn
The factory becomes a distributed system with different nodes optimized for different workloads.
Herman
That's already happening. The term people use is "converged IT-OT architecture." It's messy, it's complicated, and it's where the industry is headed whether anyone likes it or not.
Corn
Let me ask you a question that's been in the back of my mind. All these operating systems you've described — VxWorks, Nucleus, QNX, the Siemens proprietary firmware — they're all closed-source, or at least source-available only under strict licensing. Does that matter? Is there an argument for open-source RTOS in industrial control?
Herman
There's an argument, and there are a few open-source RTOS options out there. FreeRTOS is the most famous — it's now owned by Amazon through their acquisition of FreeRTOS.org, and it's used in millions of microcontrollers. But FreeRTOS is really designed for the microcontroller class, not the applications-processor class that a high-end PLC uses. There's also Zephyr, which is a Linux Foundation project that's more capable and is gaining adoption in industrial IoT devices. And then there's seL4, which is a formally verified microkernel developed by NICTA in Australia and now maintained by the seL4 Foundation.
Corn
Formally verified — meaning they've mathematically proven properties about it?
Herman
seL4 is the only general-purpose operating system kernel that has been formally verified for functional correctness. They've proven, using machine-checked mathematical proofs, that the C implementation correctly implements its specification. That's an extraordinary achievement. The proofs cover things like memory safety, absence of buffer overflows, absence of null pointer dereferences. For a safety-critical industrial controller, that's incredibly valuable.
Corn
Why isn't everyone using seL4?
Herman
Because formal verification is hard and the ecosystem is small. The kernel itself is verified, but the drivers, the network stack, the application frameworks — those aren't. And the performance characteristics, while good, haven't been optimized for industrial control the way VxWorks or Nucleus have over decades. Plus, the industrial world is conservative. "Nobody got fired for buying Siemens" is a real thing. The switching costs are enormous. If you've got a factory running on Siemens controllers with twenty years of accumulated ladder logic, you're not going to rip it all out because someone proved a theorem about a different kernel.
Corn
The installed base is the ultimate moat.
Herman
It's an incredibly deep moat. And it's not just the hardware and software — it's the training, the tooling, the spare parts inventory, the service contracts, the regulatory certifications. All of that is tied to a specific vendor's ecosystem. Changing operating systems means changing all of that.
Corn
What you're saying is, the answer to "what OS does a PLC run" is partly technical and partly a story about industrial economics and path dependency.
Herman
The technical answer is: it depends on the manufacturer and the model year, but you'll find proprietary RTOS, VxWorks, Nucleus, QNX, Windows with real-time extensions, and increasingly Linux in non-critical roles. The deeper answer is that the OS choice is embedded in a web of business decisions, certification requirements, and legacy compatibility that makes it very sticky.
Corn
If you're an attacker looking at this landscape, the diversity is both a challenge and an opportunity. A challenge because you can't write one exploit that works everywhere. An opportunity because each of these platforms has its own vulnerabilities, and the defenders are often struggling just to know what they're running.
Herman
That's the security paradox of industrial control systems in a nutshell. The diversity provides some natural resilience against mass exploitation, but the opacity makes it very hard to defend systematically. You can't patch what you can't inventory.
Corn
Let me ask one more question before we wrap. If Daniel — or anyone — wanted to actually run one of these RTOSes and experiment with it, is that possible? Can you just download VxWorks and play around?
Herman
VxWorks is commercial. Wind River offers evaluation licenses, but it's not open source and it's not free. Nucleus is the same — you can get an evaluation kit from Siemens, but it's a commercial product. QNX offers free non-commercial licenses for experimentation, which is actually quite generous. FreeRTOS is fully open source and free to use, even commercially, under the MIT license. Zephyr is Apache 2.0 licensed and completely open. seL4 is open source under GPLv2. So there are options if you want to get your hands dirty.
Corn
None of them will give you the exact experience of programming a Siemens PLC, because the RTOS is hidden behind the engineering tool.
Herman
The PLC experience is the IDE — TIA Portal, Studio 5000, Codesys. The operating system underneath is deliberately invisible. If you want to understand what's actually happening, you almost have to approach it from the security research angle. Look at the firmware, analyze the binaries, figure out what's running. It's a different kind of exploration.
Corn
That feels like a good place to leave it. The PLC operating system landscape is more diverse and more layered than it appears from the outside, and the trend is toward more complexity, not less — but that complexity is in service of features, security isolation, and connectivity that the old monolithic firmware could never support. The ESP32 comparison isn't wrong, it's just at one end of a spectrum that now stretches all the way to containerized app platforms.
Herman
The thing I'd want people to take away is that the invisibility of the OS is a deliberate design choice that made sense in 1970 and is becoming a liability in a world where everything is connected. The abstraction is leaking, and understanding what's underneath matters more than it used to.
Corn
Now: Hilbert's daily fun fact.

Hilbert: The name "Sakhalin" comes from a misrendering of the Manchu phrase "sahaliyan ula angga hada," meaning "cliffs at the mouth of the black river." When Russian explorers first mapped the island in the early nineteen hundreds, they truncated the phrase to just the first word, misunderstood it as a proper name, and the error has been baked into every map since.
Corn
Truncation errors with geopolitical consequences. Sounds about right.
Herman
That's one for the next trivia night.
Corn
Something to chew on: if the trend continues, the PLC of 2035 might not look like a PLC at all. It might be a software workload running on a general-purpose edge server, containerized and orchestrated, with the real-time guarantees handled by a hypervisor we haven't heard of yet. And the question of "what operating system" will be even harder to answer, because the answer might be "several, simultaneously." That's either progress or a very elaborate way to recreate the problems we already solved with dedicated hardware.
Herman
Probably both is the safest bet in this industry. Thanks to Hilbert Flumingtop for producing. This has been My Weird Prompts. Find us at myweirdprompts.com or wherever you get your podcasts.
Corn
We're back next time.

This episode was generated with AI assistance. Hosts Herman and Corn are AI personalities.