Richard Bucker

What is my next *nix?

Posted at — Jan 4, 2015

I have long since been a fan of Slackware and OpenBSD. Both are rock solid and while they are opinionated they are clean and reliable. Many years ago the Slackware author dropped out for about a year in the middle of the most productive time in the Linux Kernel. Patrick was also highly skeptical of the 3.X branch of the kernel and as a result things, including driver support, lingered.

OpenBSD has long since been laser focused on security and freedom. Theo has always held true to those principles. There was a time when certain wifi and video drivers were closed source. While OpenBSD was the most secure *nix available it simply would not run on some of the most common hardware without requiring substitute video and network hardware.

There is a lot going on right now and things are only getting faster. While I like Ubuntu, Fedora, CentOS, Mint and a few others… I am starting to focus on smaller OS’. For example, CoreOS, NixOS, MirageOS, Erlang on Xen and Elixir on Xen; so called unikernels.

What I like about OpenBSD is that I rarely have to patch it. The team is always back porting bugs and patches. What I really like is that it’s very rare that I need to implement the patches because they are in userspace and 3rd party projects. The main OpenBSD Server is tight.

What makes CoreOS a very likable project is in their marketing. (a) mostly immutable (b) green/blue installation inspired by ChromeOS © enterprise ready with monitoring service (d) precooked with etcd, fleetd, systemd, and docker (e) scheduled upgrades with locksmith. (f) there are simply fewer dependencies and moving parts. (g) cloud-init. As a devops person I like that the heavy lifting of maintaining the bare metal is virtually eliminated.

NixOS is a relative newcomer; to me. Where most *nix systems rely on batch or script files, orchestration systems like chef, puppet, ansible, saltstack; NixOS has it’s own package manager. This package manager addresses many of the shortcoming in the other orchestration systems and yet provides a idempotent OS instance after startup. NixOS could end up spanning the chasm between CoreOS and unikernels.

I was never a fan of Erlang on Xen, however, after watching a presentation from one of the developers at Jane Street I have a new respect. Whether my next unikernel is going to be OCaml, erlang or elixir is still to be seen. The thing to keep in mind is that most services or agents simply do not need all the cruft that a full-blown operating system provides.

Containers, NixOS and unikernels all provide interesting potential for green/blue as well as zero downtime… they all feel like the right future.