Crazierl - an Erlang Operating System

russor
Thu, 19 Mar 2026 02:21:27 +0000
Libraries

Crazierl is an experimental/hobby operating system based around BEAM. It’s fairly limited: 32-bit x86, BIOS boot, only two NIC drivers virtio-net and realtek 8168. But it can do dist (with the gen_tcp_dist example carrier from OTP), and you can push code over dist to hot-load in development. It also supports SMP, but it’s crashy with high core counts in qemu; there’s almost certainly several concurrency bugs in the kernel.

I’ve put up a fun browser based demo here. I don’t recommend using a phone; it does work on the phones I tested, but it’s very awkward to use. You can share a link with a hashtag with your friends and click the consent checkbox, and it (should) link up into dist and I’ve also included a chat application you can start with chat:start(). (quit chat with /quit, or use the shell menu with ctrl-g to switch between shells etc). The browser demo relies on the v86 javascript x86 virtual machine. It can also run on a real x86 system, but I’ve had mixed luck on modern systems, it uses some esoteric legacy VGA features and support for that isn’t getting better.

The IP stack is based on GitHub - rickpayne/erlang-tcpip: Erlang TCP/IP Stack · GitHub but I’ve made a fair amount of changes, so please don’t hold any bugs you see in my demo against the upstream; it’s almost certainly my fault.

Source here

github.com

GitHub - russor/crazierl: An Erlang Operating System for x86

main

An Erlang Operating System for x86. Contribute to russor/crazierl development by creating an account on GitHub.

(libraries seemed like the best section; although I’m not sure crazierl quite fits in this section)

4 posts - 3 participants