[erlang-questions] Light-weight operating systems supporting Erlang in production web servers
Wed Sep 20 14:01:57 CEST 2017
On Wed, Sep 20, 2017 at 1:20 PM, Peer Stritzinger <peer@REDACTED> wrote:
> Hi Drasko,
>> On 20.09.2017, at 11:36, Drasko DRASKOVIC <drasko.draskovic@REDACTED> wrote:
>> On Wed, Sep 20, 2017 at 11:12 AM, Adam Lindberg <hello@REDACTED> wrote:
>>> Hi Richard and Lloyd,
>>> We target smaller embedded systems that could benefit from Erlang, whereas on a Raspberry Pi (even zero) or Beagleboard you can easily run Linux and Erlang on top. The goal is to be able to work as much as possible with hardware in Erlang. We combine Wi-Fi with support more standard connectors, such as ports for PMODs, I²C, 1-Wire an so on. Our 300 Mhz CPU uses much less energy and the board is aimed at being an evaluation board for (then cheaper) embedded systems.
>> Booting system from SD Card will not make it in production. I think
>> you'll need bigger non-volatile storage on the board.
> We have a board with the same software stack in production for a industrial customer for about 5 year.
> This board has soldered on NAND flash, but that means you need a Flash filesystem.
> We use yaffs2 but this is GPL2 dual license and we are paying for being free from GPL in our product.
> SD Card is good in production for certain use cases but for some one wants NAND flash on board.
> This is a eval and maker board to build prototypes and have fun with. And yes it can be used in production for certain use cases.
> In most production cases I would build a specialized board which have all the sensors on board and not use PMODs for them
> and also boot from local NAND flash.
> GRiSP-base is meant as a starting point for that. And to get started a SD-card is *very* useful
Prototype - yes, SD card is useful. Production - no, SD cards break
often. They are not ment to keep your system files and that you boot
your system from them. They are secondary storage. RPi is totally
useless in production because of this. There are industrial SD cards,
but they are very expensive and do not justify not having flash
soldered on the board.
>> And why RTEMS when there is now Zephyr and RIOT with all necessary IoT
>> libs - like MQTT and CoAP?
> The question could be stated the other way round too.
> RTEMS is around since the 1980ties and very robust.
> Its very usably in industrial and automotive and of course also for IoT (whatever that may be) also its Space rated and used on a lot of space probes of NASA and ESA.
> One other thing that makes it useful to us: it has solid SMP support and embedded systems are having more cores more and more.
> And allowing access to SMP is kind of useful for Erlang. Not available in GRiSP base since we have a single core but we are using this as
> platform on smaller systems than GRiSP base and larger ones. What you see on www.grisp.org is just what we put out so everyone can get started quickly and have as much fun as we have :-)
> But there are hundreds of embedded OS with all kinds of properties, you could pick many for porting Erlang to.
> The main goal is that the embedded OS we use as basis steps aside and Erlang looks like the OS.
I understand this, but this is exactly why these modern RTOSes are
made for: https://www.zephyrproject.org/ and https://riot-os.org/.
These are big modern projects that try to solve various problems
existing with old RTOSes, especially on communication and networking
IoT communication protocols are not fun to port:
Sticking with weird licensing: https://www.rtems.org/license instead
with industry-adopted Apache-2.0 is also an error IMHO.
More information about the erlang-questions