| ▲ | Show HN: Crazierl – An Erlang Operating System(crazierl.org) | ||||||||||||||||||||||
| 27 points by toast0 3 hours ago | 9 comments | |||||||||||||||||||||||
Crazierl is an experimental/hobby operating system based around BEAM. I've linked the browser based demo; I don’t recommend using a phone; it does work, slowly, 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. You can also run Crazierl 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. Crazierl is fairly limited: 32-bit x86, BIOS boot, only two NIC drivers virtio-net and realtek 8168. But it's got enough to become part of an Erlang dist cluster. It also supports SMP, but it’s crashy with high core counts in qemu; there’s almost certainly several concurrency bugs in the kernel. There's also a lot of excess tcp debug spew (sorry). Source code is available (Apache) https://github.com/russor/crazierl/ | |||||||||||||||||||||||
| ▲ | tombert 2 hours ago | parent | next [-] | ||||||||||||||||||||||
I've thought about doing something like this but I am only very recently getting into low-level OS stuff. I can't remember who said this, but they called "Erlang an operating system for your code", and I think that's fairly accurate. When I build an Erlang app, I don't build it the same way as I would with Rust; I have a lot of independent gen_servers that do operate independent from each other. The Erlang VM is (roughly) preemptive multitasking, and even each process has its own GC, so it does feel like it could be a natural fit for its own operating system without having to live on top of Linux. | |||||||||||||||||||||||
| |||||||||||||||||||||||
| ▲ | lightandlight 43 minutes ago | parent | prev | next [-] | ||||||||||||||||||||||
> browser-based demo Wait, so is the browser running a JavaScript build of Qemu? / | |||||||||||||||||||||||
| |||||||||||||||||||||||
| ▲ | mixedbit 3 hours ago | parent | prev [-] | ||||||||||||||||||||||
Is the OS implemented from scratch, or is it a stripped down version of some existing OS? | |||||||||||||||||||||||
| |||||||||||||||||||||||