u-root
mkfs
Our great sponsors
u-root | mkfs | |
---|---|---|
9 | 1 | |
2,437 | 10 | |
1.3% | - | |
9.7 | 10.0 | |
8 days ago | over 1 year ago | |
Go | Go | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
u-root
-
Monogon: A Linux userland in pure Go
It looks similar to u-root https://github.com/u-root/u-root, yes, used as part of host firmware. There's a description of u-root in chapter 6 of https://link.springer.com/book/10.1007/978-1-4842-7939-7, too.
-
Gokrazy – Go Appliances
"A fully Go userland with Linux bootloaders! u-root can create a one-binary root file system (initramfs) containing a busybox-like set of tools written in Go." https://github.com/u-root/u-root
- Gokrazy Is Cool
- O que vocês acham da linguagem Goolang?
-
Is it possible to install a linux specific package on osx?
I am trying to build something with github.com/u-root/u-root/pkg/strace, but the issue I am running into is that my dev environment is an ARM Mac, while the package is specific to Unix systems.
-
Coreutils Rewritten in Rust
I've seem a few attempts. This is just one example: https://github.com/u-root/u-root/tree/master/cmds/core
- u-root – many Linux tools in a single Golang binary, initramfs, and bootloader
-
Writing an init with Go (part 1)
Great material! This approach is also used in u-root - Golang busybox created for LinuxBoot. I really enjoy working with it so far!
mkfs
-
Gokrazy Is Cool
What a coincidence! I've just been playing with Gokrazy a couple weeks ago, and just kept thinking "this is so cool". If you're building some sort of an appliance, and want the least amount of reliance on / hassle maintaining the base OS, it definitely is a viable choice.
It can also run programs that are not written in go, by using a little neat hack to build/embed a binary inside a Go package; this is e.g. how Gokrazy sets up persistent storage: https://github.com/gokrazy/mkfs
I don't think it's for everyone; if you're relying on your base OS / package manager for a lot of stuff, or just want to run Docker containers, I think there are simpler/better ways to set things up. But it's absolutely great at what it's made for; doubly so with the Raspberry Pi's finally being back in stock.
What are some alternatives?
booster - Fast and secure initramfs generator
router7 - router7 is a small home internet router completely written in Go. It is implemented as a gokrazy appliance.
dracut-sshd - Provide SSH access to initramfs early user space on Fedora and other systems that use Dracut
ground-init - Install a Linux machine locally with something that is almost, but not quite, cloud-init
nhi - :tv: Automatically capture all potentially useful information about each executed command (as well as its output) and get powerful querying mechanism
consrv - Command consrv is a SSH to serial console bridge server, originally designed for deployment on gokrazy.org devices. Apache 2.0 Licensed.
juicefs - JuiceFS is a distributed POSIX file system built on top of Redis and S3.
coreutils - Cross-platform Rust rewrite of the GNU coreutils
gocryptfs - Encrypted overlay filesystem written in Go
nushell - A new type of shell
bigfile - Bigfile -- a file transfer system that supports http, rpc and ftp protocol https://bigfile.site