5 ms·
Welcome to 2019 where an "embedded" system has 1GB RAM. The problem of GO is that all those unused libraries are loaded in RAM instead of staying on disk, and
by zoobab 8y ago
Welcome to 2019 where an "embedded" system has 1GB RAM.
The problem of GO is that all those unused libraries are loaded in RAM instead of staying on disk, and loaded when needed.
An helloworld in GO (around 1.6MB) is still too large for my openwrt router.
- ithkuil 8y agoLike every process, the text segment is demand paged so it doesn't consume ram unless it's actually needed. What you probably mean is that multiple copies of the same library cannot share the same physical memory pages.
- 05 8y agoNope, they mean there's no flash memory available on the resource constrained device to store megabytes of useless runtime. Routers/other IOT Linux devices regularly use SPI ROM chips sized 4MB..16MB, you can't just install a 100MB Ubuntu/Arm rootfs on those.
- londons_explore 8y agoI think the days of the small SPI flash chip are numbered. A a few hundreds of megabytes of flash will soon cost less than the plastic and manufacturing costs of the chip itself. At that point, manufacturers will be putting in 128megabyte flash chips simply because 16 megabyte flash chips cost more. The only place that argument won't apply is in microcontrollers where the flash is on the same die as the CPU.
- 05 8y agoSPI chips are unreasonably expensive per MB compared to NAND, some reasons on why: https://electronics.stackexchange.com/questions/32200/why-is-spi-flash-memory-so-limited-in-max-size-and-cost-way-more-per-mb-than https://electronics.stackexchange.com/questions/32200/why-is...
- mgoetzke 8y agoand why would you run k3s on these ...
- zoobab 8y agoLXC runs fine on openwrt, and uses very few amount of RAM compared to docker. I still do not understand why you need hundreds of MBs of RAM for a container orchestrator.
- rkangel 8y agoI think you're seriously underestimating both cost sensitivity, and the degree to which chip packaging evolves. I worked on a bit of premium consumer electronics. Retail would be about $80. That allowed an electronics BOM cost of $20. When selecting the processor, the size of the flash was a more dominant effect than RAM, clock speed or chip peripherals, because we're in the $1 vs $1.20 region. There is a lot of software running in some very cheap electronics, all around you all the time. Everyone just forgets because it's all designed in corporations and not talked about on the internet so much.
- eeZah7Ux 8y ago...and where a 40MB binary is called "small". And it has to run on every node even if the worker nodes are just running workloads.
- znpy 8y ago> Welcome to 2019 where an "embedded" system has 1GB RAM. Thirty years ago someone could have said the same when seeing laptop computers and remembering when computer literally used to occupy whole large rooms. Come on, let's stop doing this kind of jokes, they add nothing to the discussion.
- vidarh 8y agoWe're still in a place where there are millions of embedded devices out there in actual real world use where these resource constraints are real.
- oblio 8y agoWould you put or even need Kubernetes for those devices?
- rkangel 8y agoThe problem is that the bottom end of 1k RAM still exists. In fact, because the main change is that it gets cheaper every year, it's even more prevalent. Just because there aren't lots of blog posts, doesn't mean that isn't a large proportion of the industry. The word 'embedded' is not well defined, but if you use it on things with 1GB of RAM, what do you call a PIC with 1K? My personal definition of embedded (which is of course still flawed) is anything without an MMU. A Raspberry Pi isn't embedded for instance, it's just a small computer, just like a phone.
- hoffs 8y ago1K ram embedded device surely doesn't even exist in compute scenarios where kubernetes operates. There's very different fields
- detaro 8y agoAnd nobody has suggested to use it on such tiny devices. "Embedded" spanning a large range of devices isn't new. 20 years ago, mainboards for high-end x86 CPUs of the day that were made to be put into industrial devices were already called "embedded". Because they're embedded into machines etc. If you mean tiny devices, why not say "microcontroller" or something?
- pjmlp 8y agoGo has support for plugins (OS X and Linux only currently). However unlike Modula-3, Mesa/Ceda or Oberon(-2)/Active/Component Pascal they are load only instead of being possible to unload them, and they require manual binding of symbols. For this kind of system work a more feature rich dynamism is certaly a big missing feature.
- deleted 8y ago[deleted]
- detaro 8y agoAre you saying this because the page mentions IoT, or what brought this on? To me, the page doesn't suggest that they want it to be used on many embedded devices...