Go-boot
github.comKey Features
Tech Stack
Key Features
Tech Stack
The creators of USB Armory also created TamaGo, instead of using Rust, exactly for the same reasons, to prove a point.
https://github.com/usbarmory/tamago
https://reversec.com/usb-armory/
Because in IT, seeing is believing.
> Languages like Rust have already proven they role in bare metal world, Go on the other hand needs to … and it really can!
From https://fiif.fi/wp-content/uploads/sites/9/2021/06/TamaGo.pd...
Training wheels are merely a race to the bottom for barely-literate programmers.
Too many focus on where the journey started instead of where it ended.
And I say that as someone who's been a kernel engineer for 20 years.
Same applies to GCP, AWS and Azure, powered mostly by Java, C# and C++.
People should stop being so obsessed with one specific language feature, when there is so much C and C++ code being produced every day.
C# solution doesn't work, most projects never adopted it, because it is a mess to use with third party libraries that never bothered to add the required annotations, hence why it is still a warning and optional to this day.
From what I can tell, the core Go team seems generally favorable to it, so seems like a decent chance it will happen.
From:
#73608 proposal: all: add bare metal support
https://github.com/golang/go/issues/73608
> Go applications built with GOOS=none would run on bare metal, without any underlying OS. All required support is provided by the Go runtime and external driver packages, also written in Go.
And:
> These hooks act as a "Rosetta Stone" for integration of a freestanding Go runtime within an arbitrary environment, whether bare metal or OS supported.
The bare metal list is quiet thin.
Why is so HW focused ? I use refind and it seems to be HW independent.
The older a piece of software is, the more workarounds it will have accrued for various hardware bugs or vendor misdeeds, so it's reasonable for the project to disclaim that it's only been tested on a small number of physical hardware devices even if, in theory, it should work out of the box on all of them.
As did all machines that booted into a Lisp or BASIC REPL.
1. It's an EFI application
2. It doesn't require any external runtimes, any setup, etc. (i.e. your UEFI system can boot straight into it without anything in between).
At least, that seems to be the case.
> Sprout: UEFI Bootloader in Rust
I wonder what GC changes had to be made, if any.
I wonder if it supports multiprocessing.
Not affiliated with Hacker News or Y Combinator. We simply enrich the public API with analytics.