8 ms·
> Rust is a much higher level language than preferable for bare metal, something like with C++. But if you provide the required runtime libraries, you can do it
by MrBuddyCasino 6y ago
> Rust is a much higher level language than preferable for bare metal, something like with C++. But if you provide the required runtime libraries, you can do it.
What does he mean by this? Rust has no-std mode, you can run it on an ARM M0 if you so desire.
- Yeroc 6y agoNot sure exactly what he means by that but he does link to another effort that implements everything using Rust: https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials https://github.com/rust-embedded/rust-raspberrypi-OS-tutoria...
- 95014_refugee 6y agoSome people have romantic notions about how bare-metal programming should be difficult, or done in some traditional, artisanal fashion. Most of these people have never built a modern bare-metal product; they're either stuck in the 90s, or they're dilettantes.
- sigjuice 6y agoWhat would be some good examples of modern bare-metal products?
- Sophistifunk 6y agoFrankly I'd like examples of actually-documented bare metal that you can actually buy.
- anitil 6y agoI worked on some echosounders a few years ago that were bare metal, and before that some power management equipment. Though if I was doing it again I'd probably have a bare-metal chip running the timing critical, and throw a cheap arm core on there running linux just to make life easier. And I'm pretty sure I could probably do away with the bare-metal and just pin some userspace code to a core and it'd work just as well. Edit: *'days' -> 'years'
- fulafel 6y agoNot quite a consumer product but this was recently on HN: https://www.bunniestudios.com/blog/?p=5921 https://www.bunniestudios.com/blog/?p=5921
- reitzensteinm 6y agoI have a lot of sympathy for that if you're doing it for fun. It's like buying a romantic cabin in the woods to be cut off from society to write a novel. But then you learn it gets mobile reception these days and your friend asks you why you haven't installed a Powerwall and solar yet? If you're attempting to do it commercially, that's a different thing.
- m463 6y agoI think that there has been a sea-change in computer education over the years. It has become more and more high-level built on abstraction. Additionally, computers have become both locked down and "civilized". Say you had an apple computer in the woz era - there's a good chance you had to deal with signals and hardware along with having a bootrom instead of an operating system. Nowadays, apart from something like the raspberry pi, there's a good chance people have never done assembly language programming, and have never been able to interface with the machine or external hardware. too bad, actually.
- scoutt 6y ago> there's a good chance people have ... never been able to interface with the machine or external hardware. I agree that the trend is to go up and not down in what abstraction regards, but I also think that embedded programming was never so popular like it is today. Like... you can do it with a budget under 20 USD and a couple of tutorials. You don't necessarily need to do assembler to interact with hardware. You can do it with C/C++/Rust/etc., and it's as easy as (for example) writing into some microcontroller register. Unless you are talking about something else...
- m463 6y ago> You don't necessarily need to do assembler to interact with hardware. It's too bad because people don't know how things really work underneath. The second computer course I took was assembly language, and it was a formative experience. I have carried that mental model around with me for all my life. The first time I touched hardware was in an EE course where unfortunately I didn't really delve into hardware like I should. I remember my partner was an EE and I was computer science and we each did what we did best. Looking back I we should have switched - he should have done the software and I should have done the hardware. I think I would have had better mental models from the course. And until I did stuff like a pi all these years later I treated hardware kind of like mysterious magic in my head. Seriously, all this should be treated as learning to swim. I've known people who didn't know how to swim and for them there's an insurmountable wall erected in boats and at the beach that could be fixed with a day or two of lessons.
- steveklabnik 6y agoYes, this is not a good reason. The Pi 3 is significantly larger than the chips I'm writing bare-metal Rust on daily. That said, nobody is obligated to use Rust. He should write his tutorial in whatever he wants. This isn't an actual blocker, though.
- heavyset_go 6y agoJust want to say that I enjoy your blog and would like to hear more about the bare-metal Rust you're writing.
- steveklabnik 6y agoThank you! It's part of my job at Oxide Computer; it will all be open source eventually, but isn't quite ready for it yet.
- FandangoRanger 6y agoIt's pretty easy to understand, Rust is huge. You can't build it on a Pi 3, it'll run out of RAM if you try to compile it.
- sam_bristow 6y agoIf you're running bare metal you aren't going to be running your compiler (let alone building it) on the target regardless of the language. Your compiler runs on a separate development machine. Looking at the repo, he's already building an LLVM-based cross-compiler for C anyway.
- jhgb 6y agoForth, Lisp, Smalltalk would beg to differ.