Behold the Gopher!
u-root is an embeddable root file system intended to be placed in a flash device as part of the firmware image, along with a Linux kernel. Unlike most embedded root file systems, which consist of large binaries, u-root only has five: an init program and four Go compiler binaries.
On an Ubuntu system, install perquisites and ensure Go is at least version 1.7:
sudo apt-get install git golang build-essential go version
go get github.com/u-root/u-root cd "$GOPATH/src/github.com/u-root/u-root"
Test u-root inside a chroot:
go run scripts/ramfs.go -test
We use GitHub Pull Requests for code review. Pull requests must receive one approval and pass CI before being merged.
For convenience, it is recommended to use this pre-commit hook:
ln -s -f ../../scripts/pre-commit .git/hooks/pre-commit
So, why "u-root"?
It's to reflect a universal root, you can mount on every local and get a userland portable (it's a goal).