FTL is een innovatief besturingssysteem specifiek ontworpen voor cloudomgevingen. Het onderscheidt zich door een userspace OS-architectuur, waarbij het besturingssysteem als een bibliotheek wordt geïmplementeerd. Dit maakt het toevoegen van functies, het opsporen van fouten en het uitvoeren van updates eenvoudiger, vergelijkbaar met het schrijven van applicaties.
Belangrijke technische aspecten:
- Isolatie: De FTL-kernel biedt betere isolatie van containers dan monolithische kernels via een hardwarematige interface, waardoor bare-metal machines overbodig worden.
- Compatibiliteit: FTL ondersteunt Linux-binaries en kan ook gespecialiseerde applicaties (zoals unikernels) draaien zonder POSIX-abstracties.
- Hybride aanpak: Het combineert de veiligheid en flexibiliteit van microkernels met de prestaties en eenvoud van monolithische kernels.
De roadmap van het project loopt tot januari 2027, met geplande ondersteuning voor Node.js, Go en 64-bit Arm.
FTL: Een nieuw besturingssysteem voor clouds
Wat is FTL?
Met FTL kun je je eigen besturingssysteem bouwen als een bibliotheek (library). Dit ontwerp van een userspace OS maakt het eenvoudig om functies toe te voegen, fouten op te sporen en het besturingssysteem veilig te upgraden, alsof je applicaties schrijft.
De FTL-kernel isoleert containers (instanties van het userspace OS) beter dan bestaande monolithische kernels. Dit gebeurt via een hypervisor-achtige interface op basis van lichtgewicht, hardwarematige isolatie (user mode). Hierdoor zijn er geen bare-metal machines nodig.
FTL is compatibel met Linux-binaries. Een voorbeeld hiervan is de op Rust gebaseerde HTTP-server die deze website serveert; dit is een Linux-applicatie die op FTL draait. Daarnaast is het mogelijk om gespecialiseerde applicaties te draaien die lijken op unikernels, zonder dat daar POSIX-abstracties voor nodig zijn.
Hoe het werkt
Elke container draait een userspace OS. Dit is een gedeelde bibliotheek die de meeste concepten van een besturingssysteem implementeert, zoals Linux-processen, VFS (Virtual File System) en TCP/IP. De FTL-kernel biedt een minimale interface om Linux-systeemaanroepen (system calls) in de userspace te implementeren, vergelijkbaar met hoe een hypervisor functioneert.
FTL combineert de voordelen van microkernels (flexibiliteit en veiligheid) met die van monolithische kernels (prestaties en eenvoud). Het doel is om lichtgewicht containers net zo veilig te maken als virtuele machines (VM's) en nieuwe mogelijkheden op OS-niveau in applicaties te ontsluiten, zonder in te leveren op prestaties.
Vergelijking tussen FTL en Linux:
FTL Linux
┌────────────────────────────────┐ ┌────────────────────────────────┐
│┏━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━┓│ │┏━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━┓│
│┃ ┃ ┃ ┃│ │┃ ┃ ┃ ┃│
│┃ Linux ┃ ┃ Linux ┃│ │┃ Linux ┃ ┃ Linux ┃│
│┃ Process ┃ ┃ Process ┃│ │┃ Process ┃ ┃ Process ┃│
│┃ ┃ ┃ ┃│ │┃ ┃ ┃ ┃│
│┃<0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C> Linux system calls <0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C>┃│ │┗━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━┛│
│┃ ┃│ └────────────────────────────────┘
│┃ Userspace OS ┃│ <0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C> Linux's interface <0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C>
│┃ (Process, VFS, TCP, ...) ┃│ ╔════════════════════════════════╗
│┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛│ ║ ║
└────────────────────────────────┘ ║ Linux Kernel ║
<0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C> minimal interface <0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C> ║ ║
╔════════════════════════════════╗ ║ process, fork/exec, memory, ║
║ FTL Kernel ║ ║ signals, TCP/IP, /proc, ║
║ vCPU, memory, drivers, ... ║ ║ /dev, drivers ... ║
╚════════════════════════════════╝ ╚════════════════════════════════╝
Het ontwerp van het userspace OS stelt je daarnaast in staat om de meeste functies van de Linux-kernel uit te breiden zonder dat daar kernel- of eBPF-programmering voor nodig is. Je kunt snel en veilig printfs toevoegen, beveiligingsupdates toepassen en nieuwe functies implementeren. In FTL is het besturingssysteem simpelweg een bibliotheek.
Roadmap
- September 2026: Een eenvoudige Linux HTTP-server draaien op FTL (gepubliceerd in v0.0.1 �
)
- Oktober 2026: Ondersteuning voor Async Rust-apps - Linux threads, epoll, ... (gepubliceerd in v0.1.0 �
)
- November 2026: Bestandssysteem (Filesystem)
- December 2026: Ondersteuning voor Node.js / Go
- Januari 2027: SMP, container-images, 64-bit Arm-ondersteuning
Links
- GitHub repository
- Introducing FTL: A new operating system for clouds (blogpost)
Deze website wordt geserveerd door FTL.
FTL: Een nieuw besturingssysteem voor clouds
Wat is FTL?
Met FTL kun je je eigen besturingssysteem bouwen als een bibliotheek (library). Dit ontwerp van een userspace OS maakt het eenvoudig om functies toe te voegen, fouten op te sporen en het besturingssysteem veilig te upgraden, alsof je applicaties schrijft.
De FTL-kernel isoleert containers (instanties van het userspace OS) beter dan bestaande monolithische kernels. Dit gebeurt via een hypervisor-achtige interface op basis van lichtgewicht, hardwarematige isolatie (user mode). Hierdoor zijn er geen bare-metal machines nodig.
FTL is compatibel met Linux-binaries. Een voorbeeld hiervan is de op Rust gebaseerde HTTP-server die deze website serveert; dit is een Linux-applicatie die op FTL draait. Daarnaast is het mogelijk om gespecialiseerde applicaties te draaien die lijken op unikernels, zonder dat daar POSIX-abstracties voor nodig zijn.
Hoe het werkt
Elke container draait een userspace OS. Dit is een gedeelde bibliotheek die de meeste concepten van een besturingssysteem implementeert, zoals Linux-processen, VFS (Virtual File System) en TCP/IP. De FTL-kernel biedt een minimale interface om Linux-systeemaanroepen (system calls) in de userspace te implementeren, vergelijkbaar met hoe een hypervisor functioneert.
FTL combineert de voordelen van microkernels (flexibiliteit en veiligheid) met die van monolithische kernels (prestaties en eenvoud). Het doel is om lichtgewicht containers net zo veilig te maken als virtuele machines (VM's) en nieuwe mogelijkheden op OS-niveau in applicaties te ontsluiten, zonder in te leveren op prestaties.
Vergelijking tussen FTL en Linux:
FTL Linux
┌────────────────────────────────┐ ┌────────────────────────────────┐
│┏━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━┓│ │┏━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━┓│
│┃ ┃ ┃ ┃│ │┃ ┃ ┃ ┃│
│┃ Linux ┃ ┃ Linux ┃│ │┃ Linux ┃ ┃ Linux ┃│
│┃ Process ┃ ┃ Process ┃│ │┃ Process ┃ ┃ Process ┃│
│┃ ┃ ┃ ┃│ │┃ ┃ ┃ ┃│
│┃<0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C> Linux system calls <0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C>┃│ │┗━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━┛│
│┃ ┃│ └────────────────────────────────┘
│┃ Userspace OS ┃│ <0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C> Linux's interface <0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C>
│┃ (Process, VFS, TCP, ...) ┃│ ╔════════════════════════════════╗
│┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛│ ║ ║
└────────────────────────────────┘ ║ Linux Kernel ║
<0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C> minimal interface <0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C><0xE2><0x95><0x8C> ║ ║
╔════════════════════════════════╗ ║ process, fork/exec, memory, ║
║ FTL Kernel ║ ║ signals, TCP/IP, /proc, ║
║ vCPU, memory, drivers, ... ║ ║ /dev, drivers ... ║
╚════════════════════════════════╝ ╚════════════════════════════════╝
Het ontwerp van het userspace OS stelt je daarnaast in staat om de meeste functies van de Linux-kernel uit te breiden zonder dat daar kernel- of eBPF-programmering voor nodig is. Je kunt snel en veilig printfs toevoegen, beveiligingsupdates toepassen en nieuwe functies implementeren. In FTL is het besturingssysteem simpelweg een bibliotheek.
Roadmap
- September 2026: Een eenvoudige Linux HTTP-server draaien op FTL (gepubliceerd in v0.0.1 �
)
- Oktober 2026: Ondersteuning voor Async Rust-apps - Linux threads, epoll, ... (gepubliceerd in v0.1.0 �
)
- November 2026: Bestandssysteem (Filesystem)
- December 2026: Ondersteuning voor Node.js / Go
- Januari 2027: SMP, container-images, 64-bit Arm-ondersteuning
Links
- GitHub repository
- Introducing FTL: A new operating system for clouds (blogpost)
Deze website wordt geserveerd door FTL.