u-root
gokrazy
Our great sponsors
u-root | gokrazy | |
---|---|---|
9 | 19 | |
2,437 | 3,148 | |
1.3% | 1.3% | |
9.7 | 7.7 | |
8 days ago | 8 days 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!
gokrazy
-
Considerations for a long-running Raspberry Pi
Switching to gokrazy[0] was the best thing I did for my Raspberry Pi uptimes. I think a lot of that is because it defaults to using read-only partitions so the common issue of SD cards falling over when you run apt upgrade no longer happens.
But I also think that gokrazy's simplicity and design helps it be just a solid, reliable foundation to build on top of.
[0]: https://gokrazy.org/
- Gokrazy – Go Appliances
-
Easylkb: Easy Linux Kernel Builder
The idea there sounds a lot like https://gokrazy.org/, which builds a minimal go userland, wrapping one or more user provided go applications, and bundles in a linux kernel.
Targets mostly at single board computers, and I think it downloads pre-built kernels (and bootloaters if needed), rather than trying to build them directly, since getting a working cross compilation toolchain set up and plumbed into the kernel compilation process is still a pain.
I've personally only used yocto/open-embedded for that which does nicely handle building the cross-compilation toolchain, kernel image, and modules. But it is kinda overkill for that task, being designed to build a whole userland too.
- An Overview of Nix in Practice
- Gokrazy Go (Golang) Appliances
-
Writing an OS in Go: The Bootloader
reminds me of https://github.com/gokrazy/gokrazy which does similar things.
-
When is go not a good choice?
https://gokrazy.org/ would like a word
-
Userspace isn't slow, some kernel interfaces are
Fun! We have support for running on gokrazy (https://gokrazy.org/) already, and that's probably where Unikernel Linux is more applicable for us, for when people just want a "Tailscale appliance" image.
I'll email you.
-
go-rampart: a golang package to detect overlapping periods
gokrazy exists! https://github.com/gokrazy/gokrazy
-
Can you build your own user space on top of the Linux kernel?
https://github.com/gokrazy/gokrazy for one example
What are some alternatives?
booster - Fast and secure initramfs generator
buildroot - Buildroot, making embedded Linux easy. Note that this is not the official repository, but only a mirror. The official Git repository is at http://git.buildroot.net/buildroot/. Do not open issues or file pull requests here.
dracut-sshd - Provide SSH access to initramfs early user space on Fedora and other systems that use Dracut
go-jtagenum - JTAG enumeration tool written in Go. A port of https://github.com/cyphunk/JTAGenum enhanced with https://github.com/grandideastudio/jtagulator improved implementation.
nhi - :tv: Automatically capture all potentially useful information about each executed command (as well as its output) and get powerful querying mechanism
xbvr - Tool to organize and stream your VR porn library
router7 - router7 is a small home internet router completely written in Go. It is implemented as a gokrazy appliance.
tamago - TamaGo - ARM/RISC-V bare metal Go
coreutils - Cross-platform Rust rewrite of the GNU coreutils
qt - Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly
nushell - A new type of shell
nixos-anywhere - install nixos everywhere via ssh [maintainer=@numtide]