6 ms·
I think the term embedded systems is slightly abused in this context. From what I understand, Nerves essentially creates a minimal Linux firmware image that bo
by Cyph0n 10y ago
I think the term embedded systems is slightly abused in this context.
From what I understand, Nerves essentially creates a minimal Linux firmware image that boots into your Elixir app. That is way too huge and bulky for most embedded systems i.e. microcontrollers and FPGAs. Furthermore, I don't think that the overhead of the firmware and VM can actually handle the level of realtime control required in the embedded space.
Since Nerves seems to be targeting the IoT space, why not just say "Elixir for IoT"?
Nonetheless, it looks like an awesome project. Elixir is a really interesting language running on a mature platform, and has come quite a long way in a very short amount of time.
Edit: from the ElixirDaze talk [1], Gareth says that the image is around 18 MB in size.
[1]: https://www.youtube.com/watch?v=poWoCWDLxRU&t=9m05s https://www.youtube.com/watch?v=poWoCWDLxRU&t=9m05s
- vvanders 10y agoYeah, embedded to me is something in the PIC/AVR/Cortex M0|3 space. Still awesome and exciting stuff.
- joezydeco 10y agoI'm an old embedded dog and I struggle with this a lot recently. I get that an RPi or Beaglebone or any large SoC architecture qualifies as an embedded system in the sense of "this board is running a drone/driverless car/CNC machine/etc". But, at least to me, these are highly miniaturized desktop systems now. There's disk. There's advanced I/O (HDMI, LVDS, 802.11, Ethernet, SATA, PCIe!). There's a full operating system on there. You could put one inside a 1U case and pretend it's a server. Not that this is a bad thing. SoCs are awesome and I personally have a half-dozen projects cooking with iMX6s and other cool parts in this domain. But I think we need to find a way, especially in the IoT era, to quantify a small device node architecture versus a Linux-desktop-on-a-board. I already see Microsoft abusing this by putting Win10 on an RPi and calling it an IoT architecture.
- di4na 10y agoAs someone that has played in the embedded world too, i struggled with that last year. But let's be honest. Except if you have really strong constraint about power consumption and form factor, most of these small stuff are far easier to work with, perform probably better (because yes your software has bugs) and have so so so much better tooling. Because the embedded world has a big tooling problem. I still hope to have some Rust on lower level to push it into the XXIst century. And the nerves project is made by people that come from the embedded world. They completely know their limits and do not try to push it everywhere.
- new_hackers 10y agoI think "embedded" may be the wrong word. Perhaps "very low power" is the correct way to differentiate these things (e.g. RPi versus TI MSP430). I think that at this point they are both "embedded" since I would consider "embedded" to be anything without a keyboard and monitor (hence "embedded" inside another thing).
- qubex 10y agoSo a headless server is ‘embedded’? An old-school vector supercomputer that required a frontside host system is ‘embedded’? No, surely not: ‘embedded’ requires the notion of the computing system to be essentially a controller of a physical process or system, i.e., the component that controls a device or machine that operates in our actual physical world. It might very well possess a (perhaps rudimentary) screen and keyboard or keypad.
- planteen 10y agoI like that definition. I used to maintain a system most people would call true "embedded" - it was a PowerPC based VME system running VxWorks. The job of the system was to monitor some analog voltages, detect an unsafe condition, and open some relays if the unsafe condition was detected in < 10 ms. VxWorks dev tools and the PowerPC cards are very expensive, so we decided to replace it with a x86-64 server running RedHat MRG. That is the Linux kernel with the PREEMPT_RT patchset. We had a PCIe card in there for monitoring the analogs and firing the relays. Was the system still embedded? I would argue it was. The heart of the code was basically the same - VxWorks has the POSIX API for pthreads after all. There were just some driver call changes and init looked different.
- Cyph0n 10y agoThanks for mentioning VxWorks. It looks quite interesting, and I'm surprised that I haven't heard of it before!
- new_hackers 10y ago
- StavrosK 10y agoI'm a new Arduino hobbyist and I struggle with it too. Raspberry Pis are definitely not embedded, they're a full-blown computer that's small. It's amazing how they managed to fit an entire desktop in a Pi-Zero-sized package, but it's not embedded.
- planteen 10y agoI disagree that a Raspberry Pi is "definitely not embedded". What if I had an ARM SoC (like in the RPi) running VxWorks or RTEMS controlling a missile? Few would argue that is not an embedded system. What if the RPi is running real-time Linux doing computer vision on an assembly line? What if the timing deadlines are pretty loose (>10 ms), a miss a month is acceptable, and it runs a stock Linux kernel? I would argue all of those cases are real-time embedded systems, albeit with different hard real-time versus soft real-time requirements.
- StavrosK 10y agoYou can replace "RPi" with "my Dell desktop" in all of these, and they would be equally true. Does that mean it's embedded? If not, that leaves just the physical size. Does "embedded" only mean "any computer that's very small"?
- kevlar1818 10y agoSorry if I offended anyone by using the term "embedded systems" in this context. I think of an embedded system as a large umbrella group for application-specific hardware/firmware configurations; maybe that definition doesn't hold water. It certainly differs from the popular "real-time performance" definition, which I believe is just a large sub-group of embedded systems. I've altered the title of the post to use Nerves' actual tagline. Disclaimer: I work for a company whose products are based around SoCs running Linux for soft-real-time applications, and we whole-heartedly call these products embedded systems.
- joezydeco 10y agoI don't think it was offensive at all. The smartphone/SoC era has just blurred the lines. We can now have dedicated application processors that do incredible things, stuff that was inconceivable a decade ago.
- Cyph0n 10y agoNah, not at all, I just felt that it was slightly misleading. I for one expected Elixir running on a microcontroller, similar to MicroPython [1]. [1]: https://micropython.org/ https://micropython.org/
- regularfry 10y agoThe "can Erlang handle realtime control" question seems to come up fairly regularly, but more as an expression of doubt than anything concrete. This is the classic example of it being done: https://www.youtube.com/watch?v=96UzSHyp0F8 https://www.youtube.com/watch?v=96UzSHyp0F8 What I don't know is whether that's generalisable, or relies on particularly fiddly work on the microprocessor to keep latencies down.
- davidw 10y ago> That is way too huge and bulky for most embedded system I heard a good definition: is it used as a computer or as an appliance. If it's the latter, it's at least kind of embedded, even if it's a fairly powerful processor with lots of memory and so on.
- rdtsc 10y ago> That is way too huge and bulky for most embedded systems i.e. microcontrollers and FPGAs I've seen embedded 2U Xeon servers on a rack, used for signal processing or for controlling industrial systems. I would still consider those embedded. They are used inside of a larger system. > Furthermore, I don't think that the overhead of the firmware and VM can actually handle the level of realtime control required in the embedded space. It is perfectly fine. Just a few years ago someone demostrated using it to read data out of a camera sensor adn stream it. Beaglebone Black for example has two realtime co-processors (PRIs) which can be used to process and read data off sensors and such. http://www.slideshare.net/fhunleth/building-a-network-ip-camera-using-erlang http://www.slideshare.net/fhunleth/building-a-network-ip-cam...
- choosername 10y agoAutomous driving will ve way to huge for any uc if thelime of avr and pic, but it's still called an embedded system. Or a system of embedded systems at least.