5 ms·
7 MB of RAM at idle, wow. But what can it run on top of it? Dotnet? Python? Go? AFAIK even the latter has a non- negligible runtime overhead. In general I wo
by solarkraft 6y ago
7 MB of RAM at idle, wow.
But what can it run on top of it? Dotnet? Python? Go?
AFAIK even the latter has a non- negligible runtime overhead.
In general I wonder if it's actually practically usable for common tasks one could imagine.
One advantage over micro-controllers is clear, though: Dynamic loading/execution of binaries, which no microcontroller OS seems to care about (why?).
- deleted 6y ago[deleted]
- retrac 6y agoFor context, I currently have a 16 MHz 68030 machine with 24 MB running a recent NetBSD install, just as a lark. For simple command line things like poking around the file system over telnet, it feels pretty much like a contemporary system. It can even run the Python REPL fine, though it takes a good number of seconds to start up. Apache is no problem and it can host a website, though I imagine it would crumple with more than a dozen requests a minute or so. Actually, the only real annoyance for that kind of work is that the machine's too slow to authenticate SSL keys in a reasonable time, so logging in takes forever and you can't host an HTTPS site. Given this ARM machine is probably ~100x faster, if you're willing to add some swap for flexibility, I imagine it'd be usable for a wide variety of low-memory tasks.
- anthk 6y ago> Actually, the only real annoyance for that kind of work is that the machine's too slow to authenticate SSL keys in a reasonable time, so logging in takes forever and you can't host an HTTPS site. Isn't Dillo (compiled from Mercurial) with mbedtls fast enough? Also, Gopher servers like sdf.org, magical.fish or i-logout.cz would shine on that machine. Fire up lynx and go. Or better, compile sacc with tcc, it will run megafast.
- anthk 6y agoInstead of python, try compiling both JimTCL and the SDL "widgets". You will like it.
- rndgermandude 6y agoLanguages with garbage collection and/or tons of reflection (requiring memory for bookkeeping) and/or JIT (requiring memory for on-the-fly jitted code) would indeed be a problem due to the overhead of those technologies. Python is not as "bad" as dotnet and go I'd think, as most of python is reference counted garbage collection (with a "full" GC just to break up cycles) while go and dotnet use essentially mark-and-sweep GC strategies which require a lot of object moving and thus scratch space. Running a dotnet hello-world (on x86_64 linux admittedly) gives an RSS of 26MB, most of it mapped libraries and .net assemblies, some libraries shared between processes of course, like libc/libm/ld.so. But it also maps a ton memory for the JIT and the GC (including scratch space to move objects into during gc). With some swap, it may survive on a system with 25MB of free memory, but I'd think there'd be plenty of swap-thrashing and gc thrashing going on, making that less fun. Running a python3's hello world comes in at 10MB RSS, but a large part of that is the shared libraries like libc/libm/ld.so. With some memory-conserving programming some real python programs may run just fine without excess swapping. For comparison, a hello world in C maps about 1M RSS, while a rust one maps 2MB RSS, both times a big chunk in shared libraries specially libc.
- nimmer 6y ago> Languages with garbage collection Nim uses GC by default and uses 512KB of RSS without any tuning. (With ARC/ORC and without libc it can run on microcontrollers with 1KB of RAM)
- anthk 6y agoTCL would run for sure.