Comment by dreamcompiler
3 hours ago
When you don't have the overhead of an operating system with decades of backward compatibility cruft, a scheduler, a virtual memory controller, and a file system you can accomplish amazing things with simple processors. Bare metal is something I'd encourage every programmer to try.
I actually have a 8085 Primer Trainer that I built/used in the 90s for school. [1] Programmed with pushbuttons and 7 segment LEDs. No backup memory so if you shut it off it lost it's program and you had to start over.
Not a programmer by trade, I prefer hardware...had no idea until recently how valuable the training was. We learned BASIC and 8085 machine code as well as building logic circuits from discrete parts. Then I used basically no code myself for 15 years until I learned Arduino. Knowing the basics certainly helped me know what was going on. From there it was just syntax for languages.
[1] https://flic.kr/p/2mkG7gC
Yeah exactly, we now have so many layers of stuff. On top of vmem & OS, add high def displays, and today’s corporate firewall and malware scanning. I wouldn’t be surprised if just booting my Win 11 laptop, logging in, and launching Teams uses more compute than the entire Galileo mission used over its entire 8 year run. :P
Even without the layers & cruft though, the raw perf is astounding to those of us who remember 8 bit 1Mhz microprocessors. Today’s gamers are used to double-digit teraflops(!) of compute, just to render all the pixels for Minecraft or Fortnite.
I don’t know if there’s a better way these days, but for me Arduino has been an easy & super fun way to futz with a tiny bare metal microprocessor.