4 ms·
Somewhat, but it's very different in that it uses RTEMS, not Linux. RTEMS was built for embedded computers on missiles, and is commonly used in space applicatio
by oomkiller 10y ago
Somewhat, but it's very different in that it uses RTEMS, not Linux. RTEMS was built for embedded computers on missiles, and is commonly used in space applications. Nerves is a distribution of Linux buildroot, and has quite a bit of fat compared to something like RTEMS. I can't wait to see Elixir running on RTEMS, from my conversations with Peer, it seems he's ported the Erlang VM to RTEMS directly, much like the OSE port.
- davidw 10y agoI wonder what the difference looks like in terms of the total system footprint.
- thenewwazoo 10y agoMassive. NERVES requires Linux, plus system libraries. I've built RTEMS applications in the tens of kilobytes. Both require BEAM, of course, plus the actual Erlang application itself.
- davidw 10y ago> Both require BEAM, of course, plus the actual Erlang application itself. Exactly - that part is not tiny, so I wonder what the two look like in comparison.
- elcritch 10y agoNerves is around the 10-20 MB range. The main downside of the Grisp system I could see would be that nerves has a really nice two phase firmware update story, and that isn't mentioned in Grisp that I've found. IMHO, the remote firmware update and tooling is a "killer" feature of nerves.
- peerst 10y agoFirmware update in the field is important but only a small aspect of a embedded system (one that really needs to work). But Erlang already offers a lot around releases out of the box and in our case The VM + the whole "OS" is just one file to swap so we don't have a lot of problems one has if Linux + Erlang + Application needs to be updated. FWIW: for larger Embedded systems we use FreeBSD + nanobsd wich solves a lot of the above mentioned problems. Update image verification and running the update is about 200 lines of Erlang code. And nanobsd comes with the normal FreeBSD system (builds disk/flash filesystem images with multiple partitions for easy update -- runs from one swap to the other)