For context of how lightweight this is, an -O3 release build of my entire firmware on the management processor right now (including the sshd, hardware drivers, TCP/IP stack, the CLI itself, all of the code to query the supported set of sensors, etc) uses 109 kB of flash and 84 kB of SRAM. The -Og debug build is smaller at 86 kB flash usage.
It compiles in five seconds from a clean build tree on my workstation.
Sure, this isn't as feature-rich as OpenSSH or even Dropbear and is missing a lot of the fancy features you get on Linux, but it's tiny and fast. Good luck getting buildroot or something to give you a 100 kB kernel+userspace image that builds in five seconds.
And it's fast: "time -p ssh testbed show ver" returns in 70 ms on a debug build. That's faster than some x86 Debian + OpenSSH machines I've benchmarked against. And I'm on a 500 MHz single-core Cortex-M7.
I’m getting ready to turn 42yo, but I want to be like you when I grow up.
Seriously, impressive work. I’m a sysadmin who completed a two-year electronics engineering program (mostly for fun, although it’s become increasingly useful in my work). Since then, I have learned enough to design my own simple boards with BOMs that include maybe a few dozen parts. I can also hack on relatively complex projects that more experienced engineers design, but I find the bulk of my enjoyment in the iterative process of designing for myself.
My family doesn’t understand the appeal, and poke fun at my inability to finish a lot of the things I start, especially when it’s some gadget that I could have purchased off-the-shelf for less than I paid for the parts. But I tell them that, as a hobby, electronics is mostly about finding fulfillment within the journey, rather than the destination. Otherwise, it would be a very masochistic endeavor, as even successfully completed projects will have involved several failures along the way. Each time I fail, I learn something new and exciting to expand my horizons.
That unique experience of your own intuition clicking into place as the gaps in your knowledge are bridged, and you discover how fundamental physics work to produce the phenomena we use to create machines—it is something I have always struggled to describe. It’s sort of like when you learn how a magic trick works, but instead of being disappointed in the mundanity of seeing someone palm a playing card, you’re wonderstruck by the magical nature of physics, the elegance of simple laws that manifest complex systems when applied recursively, and the fractal nature of it all.
Pardon the self-indulgent musings, I have nothing productive to add, only that I very much enjoy exploring your work, and I look forward to following this project.
It compiles in five seconds from a clean build tree on my workstation.
Sure, this isn't as feature-rich as OpenSSH or even Dropbear and is missing a lot of the fancy features you get on Linux, but it's tiny and fast. Good luck getting buildroot or something to give you a 100 kB kernel+userspace image that builds in five seconds.
And it's fast: "time -p ssh testbed show ver" returns in 70 ms on a debug build. That's faster than some x86 Debian + OpenSSH machines I've benchmarked against. And I'm on a 500 MHz single-core Cortex-M7.