Session

Kotlin/Native for System Programming: Building a Low-Level Container Runtime

System programming has traditionally been dominated by languages like C, Go, and Rust. To evaluate Kotlin/Native in this domain, I developed a low-level container runtime that manages the container lifecycle by directly manipulating Linux features such as namespaces and cgroups.

In this session, I will start by briefly outlining how the LLVM-based compilation model enables Kotlin to execute without a JVM, providing the foundation for low-level system interaction.
I will then demonstrate how Kotlin’s strong type system and null safety bring reliability to low-level programming, while also highlighting the efficient C interoperability provided by Kotlin/Native.

I will then dive into the inherent tension between the Kotlin runtime and Linux system calls. Specifically, I will address the conflict between the multi-threaded nature of the Kotlin runtime and the single-threaded requirements of unshare or fork. I will explain the architectural pattern I implemented to resolve this compatibility issue.

Finally, I will share performance metrics, such as binary size and startup speed, to evaluate the overhead of Kotlin/Native realistically against comparable C, Go or Rust implementations.

By the end of this talk, you will understand the practical viability of Kotlin/Native for system programming. You will leave equipped with patterns for safe C interoperability and strategies for managing runtime characteristics in native applications.

Ayako Hayasaka

Software Engineer at LY Corporation

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top