Every organization today is paying what we call the “Abstraction Tax”; layers upon layers of middleware, service meshes, sidecars, and orchestration tools that were supposed to simplify operations but instead created a new complexity crisis. A simple “hello world” service now requires init containers, sidecar proxies, service mesh configurations, ingress controllers, and dozens of YAML files. We’ve all seen bloated sidecar code that completely overwhelms the value it brings; 2GB of proxy infrastructure to route 1KB messages.
Like sedimentary rock forming over millennia, each layer of abstraction seemed reasonable at the time. But now we’re excavating through geological strata of configuration just to deploy a simple service. The service mesh alone; Istio, Linkerd, Consul; adds 500MB+ of proxy sidecars to every pod, turning your elegant microservice into a lumbering giant.
But what if we could eliminate the bloat from containers themselves?
The Proven Path: Learning from MirageOS
Let’s start with something that already works. MirageOS, built at Cambridge University using OCaml, has quietly revolutionized how we at SpeakEZ Technologies think about micro-VMs, containers and microservices. The project’s 2008 goal was to create a portable, lightweight, and secure runtime by restructuring virtual machines into modular, reusable library components. You might not know it, but even today MirageOS powers parts of Docker Desktop’s networking layer. Amazon Web Services used it for years with their Xen infrastructure. This isn’t experimental; it’s battle-tested in production at massive scale.
What makes MirageOS special? While Docker containers strip away the need for multiple OS kernels by sharing one, they still carry significant baggage - package managers, shells, system utilities, and libraries that your application might never use. A typical container image includes:
Traditional Container Image:
- Base image utilities (apt, yum, bash, etc.): 50-150MB
- System libraries and dependencies: 100-300MB
- Your application: 50MB
- Result: 200-500MB to run 50MB of code
MirageOS Unikernel:
- Application + only the exact library functions it calls: 5-10MB total
- No shell, no package manager, no unused libraries
- Runs as a lightweight VM in Firecracker or Xen
- Boots in 5-50 milliseconds
- Already proven at AWS and Docker scale
Think of it this way: containers eliminated the need for multiple kernels, which was revolutionary. MirageOS goes further by eliminating everything else that isn’t your actual application. It compiles your code together with only the specific OS functions it needs into a single, sealed unit.
This approach has worked so well that we asked ourselves: what if we could extend this concept using F#, a language that shares OCaml’s heritage but offers even more power for system-level programming?
From Microcontrollers to the Cloud
Our vision began in an unexpected place: STM32 microcontrollers. When building embedded systems, every byte matters. The Fidelity framework has a design option in the LLVM path to statically link F# code directly to low-level library code, and in this case it was ST Microdevices’ CMSIS Hardware Abstraction Layer (HAL). Mapping to that directly instead of through a realtime operating system (RTOS) made our applications into the operating system. No RTOS bootstrapping, just code running on bare metal.
The expected results:
- Significantly smaller payloads on the device
- Extremely fast, deterministic real-time performance
- Mathematically provable security (no OS vulnerabilities)
- Direct hardware control from high-level F# code
This microcontroller strategy led to a revelation: if we can replace the OS on a tiny chip, the same principles could eventually apply to servers and the advanced accelerators that will be driving the next wave of intelligent systems design.
An OCaml Heritage
F# and OCaml share the same ML family heritage, and F# was itself built as an expression of OCaml for the .NET runtime environment. However F# and the Fidelity framework extends those capabilities in crucial ways:
OCaml (MirageOS’s Foundation):
- Excellent functional programming language
- Good low-level capabilities
- Proven in systems programming
F# with Fidelity (The Next Generation):
- All of OCaml’s capabilities
- Superior type system with units of measure and type providers
- Comprehensive tooling and IDE support
- Direct LLVM compilation path (and other backends via MLIR)
- Native interop with C/C++ libraries
- Plans for hardware description capabilities for FPGAs
The Fidelity framework takes F# well beyond its .NET origin story, taking a page from the Fable compiler’s innovative JavaScript path. We compile F# directly to native code without any runtime dependencies. This means we can build unikernels like MirageOS, but with a more adaptive and top-line semantic layer, and using a more adaptive intermediate expression through MLIR that leads to more direct hardware integration.
A Kubernetes Replacement Emerges
As we continued to design these capabilities, a novel idea emerged. Just as MirageOS replaced traditional containers for specific applications, a future Fidelity “unikernel” could become the entire orchestration layer, effectively replacing Kubernetes.
This is where it’s worthwhile to note one of the more stark divergence of F# beyond its OCaml heritage: the MailboxProcessor, which implements Erlang-style actor model concurrency. This isn’t just a language feature; it’s a different philosophy of system design. Erlang powers WhatsApp, Discord, and telecom systems that require 99.9999% uptime. The Erlang VM (BEAM) is essentially an operating system that manages millions of lightweight processes with fault isolation and supervision trees.
F# has many of these concepts built in:
- MailboxProcessor: Erlang-style actors with message passing
- Async & Computation Expressions: Lightweight concurrency
- Immutable by default: No hidden mutable state challenges
- Pattern matching: Message handling like Erlang’s receive blocks
The Fidelity framework extends far beyond F#’s base MailboxProcessor implementation. Our Olivier actor model and Prospero orchestration layer create a complete actor hierarchy with deterministic resource management.
As detailed in our article on RAII in Olivier and Prospero, Prospero’s design serves as a system-level scheduler that coordinates actor lifecycles with arena-based memory allocation and sentinels, solving the “byref problem” that plagues managed runtimes while providing Erlang-style supervision trees. This means each actor gets its own memory arena that lives exactly as long as the actor does - no garbage collection, just deterministic cleanup. And with BAREWire zero-copy and IPC memory mapping the data and message passing would occur at hardware speed with little to no intervening abstraction to get in the way.
This means adapting MirageOS to F# isn’t just about creating unikernels; it’s about integrating and extended Erlang-style operating system where actors coordinate through message passing. Each actor would become a fault-isolated unit that can fail and restart without affecting others. This is the architecture that keeps telecom switches running for decades without downtime. And we see it as a design that is once again meeting its moment with the advent of new accelerators that are taking over the next wave of AI.
Traditional Kubernetes Deployment:
- Base OS (Linux): 2GB overhead
- Kubernetes components: 500MB per node
- Service mesh: 500MB per pod
- Container runtime: 200MB
- Your application: 50MB
- Total: ~3.2GB to run 50MB of business logic
Proposed Fidelity Unikernel Deployment:
- Complete unikernel (OS + App): 10MB total
- Actor-based orchestration built in: No external orchestrator needed
- Message-passing networking: No service mesh required
- Direct hypervisor execution: No container layer
- Total: 10MB to run your complete application with Erlang-style reliability
This represents what becomes possible when MirageOS’s proven approach is combined with F# and Fidelity’s uniquely designed actor model capabilities. MirageOS already achieves startup times below 10 milliseconds and memory footprints smaller than a typical web page. Our Fidelity framework aims to bring these same benefits to F# developers while adding Erlang-style fault tolerance and supervision.
A Macrocontroller Operating System
Here’s where our microcontroller experience meets cloud-scale ambition. Just as we innovated with replacement of the RTOS on STM32 chips by statically linking to hardware abstraction layers, we are considering designs that may someday replace generic operating systems by compiling directly to those hardware system interfaces. It would require a significant undertaking but for use cases where security and efficient execution in a hardware-software co-design space, it could be a crucial feature.
The progression is logical:
- Microcontrollers: Fidelity applications ARE the OS
- Cloud VMs: MirageOS proves it works; we extend it with F# beyond OCaml’s limits
- Bare Metal: Direct server access without the security exposure of the traditional OS
MirageOS has shown this isn’t just possible; it’s could be seen as preferable for many built-for-purpose workloads where the CPU and memory is part of an orchestration layer where accelerators are doing the majority of “the work”. Our Fidelity framework vision extends to embrace this emerging technology landscape.
The New Reality: Heterogeneous Computing
Modern computing isn’t just about CPUs anymore. AI workloads need GPUs and TPUs. Stream processing demands FPGAs. Adaptive algorithms benefit from CGRAs. Future applications will use neuromorphic chips that compute like brains.
Traditional approaches treat these as “accelerators” bolted onto a CPU-centric system. But what if each processor type ran its own specialized unikernel?
The Fidelity Advantage for Heterogeneous Systems:
- One Language, Many Targets: F# code compiles to optimal code for each processor type
- No Runtime Translation: Direct compilation to GPU kernels, FPGA bitstreams, or neuromorphic circuits
- Unified Memory Model: Our BAREWire protocol enables zero-copy sharing between processors
- Provable Safety: Mathematical verification that also informs optimization
This is the new reality of intelligent systems design. As specialized chips proliferate, the ability to compile efficient, secure code for any processor becomes the ultimate competitive advantage.
Heterogeneous Intelligence
Here’s where traditional approaches completely fall apart. Modern AI and HPC workloads don’t just run on GPUs. They need CPUs for orchestration, TPUs for tensor operations, and even FPGAs for custom math processing. Soon CGRAs will provide reconfigurable logic, and neuromorphic chips will produce brain-inspired computing. We see Fidelity taking center stage for all of those coming waves of innovation.
Kubernetes treats all of this as “resources” to be scheduled. But that’s like treating a Formula 1 car, a cargo ship, and a fighter jet as just “vehicles”; technically true, but you’re missing everything that matters.
Native Intelligence for Every Accelerator
We won’t just schedule workloads on accelerators. Our designs will compile native unikernels specifically for each type of processor:
Your Business Logic] SRC --> CPU[CPU Unikernel
Control & Orchestration
5MB total] SRC --> GPU[GPU Kernel
Parallel Processing
Direct CUDA/ROCm] SRC --> TPU[TPU Program
Tensor Operations
Native XLA] SRC --> FPGA[FPGA Bitstream
Stream Processing
Hardware Speed] SRC --> CGRA[CGRA Configuration
Adaptive Logic
Runtime Reconfigurable] SRC --> NEURO[Neuromorphic
Spiking Networks
Ultra-Low Power] style SRC fill:#f9f9f9,stroke:#333,stroke-width:2px style CPU fill:#e8f5e8,stroke:#333,stroke-width:1px style GPU fill:#fff3e0,stroke:#333,stroke-width:1px style TPU fill:#e3f2fd,stroke:#333,stroke-width:1px style FPGA fill:#f3e5f5,stroke:#333,stroke-width:1px style CGRA fill:#fce4ec,stroke:#333,stroke-width:1px style NEURO fill:#e0f2f1,stroke:#333,stroke-width:1px
Each accelerator runs only what it needs. No ‘generic’ operating system. No bloated sidecars or container runtime. Just pure, optimized computation at the speed of silicon. The full spectrum on delivery mechanisms would be available: deployment to a Kubernetes cluster, triggered within a serverless framework, or operate on their own in high-speed delivery platforms built-for-purpose.
Security Through Simplicity
Traditional security is like building higher walls around a sprawling city. Zero Trust is like requiring ID badges at every door.
But what if there were no doors to guard?
Unikernels provide security through radical simplification:
- No Shell: Can’t spawn a shell if there isn’t one
- No Utilities: No ls, cat, wget, or curl to exploit
- No Network Stack: Unless explicitly needed
- No File System: Unless explicitly required
- Immutable by Design: Can’t modify what doesn’t exist
It’s not that we’ve hardened the attack surface; we’ve eliminated it. A traditional Linux container has approximately 200 system calls available. Our unikernels typically need fewer than 20. That’s not a 10% improvement in security; it’s a 90% reduction in attack vectors.
The MirageOS Inspiration: Proven at Scale
This isn’t theoretical. MirageOS, the OCaml-based unikernel system already powers parts of critical internet infrastructure. Docker uses MirageOS components. Cambridge University deploys it in production. XenProject relies on it for secure isolation.
Our vision is to bring this proven approach to F# developers through the Fidelity framework, extending it with our patented innovations:
- BAREWire Protocol: Zero-copy communication between accelerators
- Interaction Nets: Optimal reduction for parallel computation
- Delimited Continuations: Efficient handling of asynchronous operations
- Type-Safe Hardware Access: Compile-time verification of hardware operations
Breaking Free from Kubernetes: The Post-Orchestration Era
Kubernetes was designed for a world of general-purpose containers on general-purpose servers. But specialized computing requires specialized orchestration. Our approach:
Nomad-Style Simplicity
Instead of Kubernetes’ 1.5 million lines of code, we use HashiCorp Nomad’s elegant 100,000 lines, extended with our custom schedulers for heterogeneous hardware.
Direct Hypervisor Control
Why put containers in VMs in Kubernetes when you can run unikernels directly on the hypervisor? We have preliminary designs to integrate with:
- Firecracker: Amazon’s microVM technology (powers Lambda)
- Solo5: Lightweight unikernel monitor
- Xen: Battle-tested isolation
- KVM: Native Linux virtualization
Purpose-Built for Heterogeneous Computing
Our orchestrator will have a built-in understanding of the fundamental differences between accelerators:
Traditional Kubernetes:
"Schedule this pod somewhere with a GPU"
Fidelity Orchestrator:
"Compile dataflow graph to FPGA bitstream,
Load tensor operations to TPU,
Configure CGRA for adaptive filtering,
Coordinate via CPU control plane,
Stream results through shared CXL memory"
The Business Case: 10x Better, Not 10% Cheaper
This isn’t about marginal improvements. It’s about fundamental advantages that compound:
Performance Multiplication
- Boot time: 1000x faster (5ms vs 5 seconds)
- Memory usage: 100x smaller (5MB vs 500MB)
- Deployment density: 50x more instances per server
- Network latency: 10x lower (microseconds, not milliseconds)
- Security incidents: 90% fewer attack vectors
Cost Revolution
When you run 50x more workloads per server with 100x less memory, infrastructure costs don’t decrease linearly; they collapse:
- Server costs: 75% reduction
- Memory costs: 90% reduction
- Operational overhead: 80% reduction
- Security audit costs: 60% reduction
- Debugging time: 70% reduction
Development Velocity
One language (F#) compiles to every target. No more:
- CUDA for GPUs
- OpenCL for FPGAs
- TensorFlow for TPUs
- Verilog for hardware
- Python glue code
- YAML orchestration
Just write business logic. The compiler handles the rest.
Real-World Applications: Where This Matters Most
Financial Services: Microsecond Advantages
High-frequency trading firms need every microsecond. Our FPGA unikernels process market data at wire speed; literally as fast as the network can deliver it. No OS overhead. No context switches. Pure computation.
Healthcare: Secure by Design
HIPAA compliance becomes trivial when there’s no OS to audit. Patient data processing runs in isolated unikernels that literally cannot access anything beyond their designated memory region.
Edge AI: Intelligence Everywhere
Deploy AI inference to edge devices without the Linux overhead. A complete vision processing pipeline in 10MB instead of 1GB. This enables AI on devices that couldn’t previously support it.
Defense: Unbreachable Systems
Military systems require the highest security. Unikernels provide mathematical proof of isolation. If it’s not in the binary, it cannot be exploited.
The Migration Path: Evolution, Not Revolution
Smart enterprises don’t flip switches; they turn dials. Here’s the journey:
Starting Small
Begin with a single workload. Perhaps an internal tool or a non-critical service. Deploy it as a unikernel alongside your existing infrastructure. When it runs without issues, people notice.
Adding Acceleration
Introduce GPU acceleration for your ML workloads. Then FPGA processing for your streaming analytics. Each success builds confidence. Each deployment reinforces the advantages.
Expanding Adoption
As teams see the benefits; reduced costs, improved performance, simplified operations; adoption naturally accelerates. Critical systems can be migrated when the organization is ready, not before.
The New Normal
Eventually, your infrastructure becomes a hybrid of traditional systems and unikernels, each used where they make the most sense. Some legacy systems may never migrate, and that’s perfectly fine. The goal is optimization, not uniformity.
The Competitive Imperative: First-Mover Advantages
Every technology wave creates winners and losers. The companies that moved from mainframes to servers won. The companies that embraced the cloud early won. The companies that adopted containers efficiently won.
But those were incremental advantages. Unikernels provide exponential advantages:
- Efficiency Gap: While competitors burn millions on cloud infrastructure, you run the same workloads for thousands
- Security Moat: While competitors patch vulnerabilities, you’ve eliminated entire categories of attacks
- Performance Edge: While competitors optimize code, you’re running at hardware speed
- Talent Leverage: While competitors hire DevOps armies, your developers deploy directly
Beyond Virtualization: The Deeper Revolution
This isn’t just about replacing containers with unikernels. It’s about rethinking computation itself:
Memory-Centric Computing
With CXL and our BAREWire protocol, memory becomes the communication fabric. No more copying data between devices. Accelerators share memory pools directly. A GPU can read FPGA results without CPU involvement. This isn’t just faster; it’s a fundamental architectural shift.
Adaptive Hardware
CGRAs (Coarse-Grained Reconfigurable Arrays) can reshape themselves for different workloads. Our compiler generates configurations that transform the hardware to match the computation. Imagine hardware that molds itself to your algorithm.
Neuromorphic Future
Brain-inspired chips are coming. They don’t run programs; they learn patterns. Our framework already supports spiking neural networks compiled directly to neuromorphic hardware. While competitors are still figuring out how to deploy to GPUs, you’ll be deploying to brain chips.
The Open Secret: Why Others Can’t Copy This
Building this requires five things that rarely come together:
- Deep Hardware Knowledge: Understanding CPU microarchitecture, GPU programming models, FPGA synthesis, and emerging accelerators
- Language Design Expertise: Creating a type system that can express all these computational models
- Compiler Engineering: Building an MLIR-based compiler that can target everything
- Mathematical Foundations: Using formal verification to prove correctness and enable aggressive optimizations
- Systems Thinking: Seeing how it all fits together
The formal verification aspect provides unique advantages. We mathematically prove our compiler transformations preserve program semantics. This enables:
- Customer Assurance: Not “we tested it thoroughly” but “we proved it correct”
- Aggressive Optimization: When you can prove transformations are safe, you can optimize far more aggressively than traditional compilers that must be conservative
- Regulatory Compliance: Formal verification for safety-critical systems in healthcare, aerospace, and finance
- Reduced Debugging: Proven-correct code eliminates entire categories of runtime errors
Our team brings together all five of these rare capabilities. Combined with four patents protecting our key innovations and years of research and development already invested, we’re positioned to deliver this vision.
The Path Forward: What You’ve Always Suspected
If you’ve made it this far, you’ve probably had that nagging feeling for a while now. The one that says “this can’t be sustainable.” Every new abstraction layer, every additional proxy, every extra configuration file; they all add up to a complexity tax that keeps growing.
You were right to be skeptical.
The emergence of specialized processors; GPUs, TPUs, FPGAs, CGRAs, neuromorphic chips; isn’t just changing hardware. It’s creating an imperative for software to evolve. The old model of piling abstractions on top of general-purpose systems doesn’t work when every chip is specialized. Hardware-software codesign isn’t just an optimization anymore; it’s becoming the only way to remain competitive.
You’ve recognized something important: the future belongs to those who can harness these new architectures efficiently. Not through more layers of abstraction, but through direct, purposeful compilation to each processor’s strengths.
A Partnership Approach
We see this as a partnership, not a product sale. Every organization’s journey will be different. Some will start with a single proof-of-concept service. Others might begin with new greenfield projects. Many will run hybrid architectures indefinitely, and that’s perfectly reasonable.
What matters is having options. The ability to deploy traditional containers when they make sense, and unikernels when efficiency matters. The flexibility to target GPUs, FPGAs, or neuromorphic processors with the same codebase. The choice to gradually evolve rather than revolutionize overnight.
A Vision Supporting Today’s Reality
We understand that you have significant investments in existing infrastructure. Teams trained on Kubernetes. Workflows built around containers. Compliance processes tied to current architectures. These aren’t obstacles to overcome; they’re assets to leverage.
Bridge Technologies
Our approach includes comprehensive bridge technologies:
BAREWire Kubernetes Integration:
- Deploy Fidelity unikernels within existing Kubernetes clusters
- Full compatibility with kubectl and existing tooling
- Gradual service-by-service migration options
- No “big bang” transitions required
Protocol Translation:
- Native support for gRPC, REST, GraphQL
- Seamless communication with legacy services
- No need to rewrite existing microservices
- Performance improvements without disruption
Hybrid Management:
- Unified monitoring across containers and unikernels
- Single operational view of heterogeneous deployments
- Existing tools continue working
- New capabilities added incrementally
Supporting Your Teams
Change is hard, especially for technical teams who’ve invested years mastering current technologies. Our approach respects this expertise:
- Familiar interfaces that gradually introduce new concepts
- Compatibility modes that ease transitions
- Training and support tailored to your team’s pace
- Options to maintain some systems in Kubernetes indefinitely
Investment Protection
Your current infrastructure becomes the foundation for evolution:
- Kubernetes clusters can host unikernel workloads
- Existing CI/CD pipelines need minimal adjustment
- Current monitoring and logging infrastructure remains relevant
- Service meshes can be gradually optimized rather than replaced
The goal isn’t to invalidate what you’ve built. It’s to give you new options for what you build next. Some services will always make sense as traditional containers. Others will benefit dramatically from unikernel efficiency. Having both options, with seamless interoperability, gives you the flexibility to optimize where it matters most.
The future includes both unikernels and traditional deployments, working together. Your existing investments remain valuable. Your teams’ expertise continues to matter. The path forward respects your current reality while opening new possibilities.
We’re here to enable a common vision of the future, however that takes shape for you.