A couple past threads:<p><i>Gokrazy: a pure-Go userland for Raspberry Pi 3 appliances</i> - <a href="https://news.ycombinator.com/item?id=20357605" rel="nofollow">https://news.ycombinator.com/item?id=20357605</a> - July 2019 (9 comments)<p><i>Gokrazy: A pure-Go userland for Raspberry Pi 3 appliances</i> - <a href="https://news.ycombinator.com/item?id=16672866" rel="nofollow">https://news.ycombinator.com/item?id=16672866</a> - March 2018 (87 comments)
gokrazy is a very cool project and something I'd like to see more of. It's not a unikernel per se but it shares the idea of packaging your code and the OS together and shipping it as one. My dream would be a pure Go userspace library to do absolutely anything related to system management you'd need, like managing networking, connecting to Wi-Fi access points, performing upgrades and so on. But it's such a massive undertaking so we're stuck depending on software written in C via FFI or exec'ing shell commands -- pretty gross.
Be interesting to have at least a few benchmarks to see if cutting so much of the regular distro code actually has a positive impact beyond the idea of it being more reliable. And that last bit does seem to remain an idea rather than a reality in that quite a lot of regular userland code (systemd comes to mind) helps stabilise a running linux box over time in a very real way. Personal exp incl having several headless Ubuntu boxes run for more than a year with zero issues despite being saddled with typical server lamp server stack.<p>All up for trying this though and can definitely see real bonus in terms of less resource use within Pi envs!
FWIW, Caddy would probably work with this, if you need a web server.<p>Caddy is pure Go, no CGO. We did a bunch of work recently to ensure that none of the dependencies have any CGO code enabled (involved asking upstream dependencies to switch to pure alternatives).
Very interesting project.<p>Has anyone tried it?<p>Apparently they have written their own init: <a href="https://gokrazy.org/userguide/process-interface/" rel="nofollow">https://gokrazy.org/userguide/process-interface/</a><p>This makes me curious. I wonder how well Gokrazy would blend with s6/s6-rc…<p>If anyone is curious there’s more info about those projects here:<p><a href="https://skarnet.org/software/s6/" rel="nofollow">https://skarnet.org/software/s6/</a><p><a href="https://skarnet.org/software/s6-rc/" rel="nofollow">https://skarnet.org/software/s6-rc/</a>
If you're a fan of this approach to deploying applications and use docker, distroless [1] is a really cool project related to this. It uses debian as the base and supports cgo because it has glibc (and openssl)<p>[1]: <a href="https://github.com/GoogleContainerTools/distroless" rel="nofollow">https://github.com/GoogleContainerTools/distroless</a>
It seems like a video output isn’t as much a priority. I’ve been looking at creating a raspberry pie powered arcade machine and I need it to be 100% reliable. A user land implementation seems like a good compromise over a bare metal application.