One of the fundamental problems with UNIX-like operating systems is that they don’t seem to make it easy and intuitive to develop applications that are strongly hardened against exploits through sandboxing. With CloudABI, we’re trying to make this process a lot easier, by having an environment that is purely based on capability-based security.
In another talk in the main track I’m going to give a more general talk about CloudABI, explaining what the mindset behind the project. During this talk in the BSD devroom I want to focus on one specific aspect, namely how FreeBSD’s runtime environment for CloudABI works.
CloudABI is a simplified POSIX-like runtime environment that is inspired by FreeBSD’s Capsicum. It allows you to create programs that can solely interact with the environment through file descriptors (capabilities). Compared to traditional UNIX-like systems, this approach has three advantages:
An interesting aspect of CloudABI is that it’s cross-platform. You can compile a CloudABI program once and run exactly the same executable both on FreeBSD, macOS and Linux. In this talk I want to focus on this specifically: how is FreeBSD capable of running these programs? Topics I’ll be covering during this talk include: