3 ms·
There's two major production-ready Go-based operating system(-ish) projects: - Google's gVisor[1] (a re-implementation of a significant subset of the Linux sys
by lima 3y ago
There's two major production-ready Go-based operating system(-ish) projects:
- Google's gVisor[1] (a re-implementation of a significant subset of the Linux syscall ABI for isolation, also mentioned in the article).
- USBArmory's Tamago[2] (a single-threaded bare-metal Go runtime for SOCs).
Both of these are security-focused with a clear trade off: sacrifice some performance for memory safety and excellent readability (and auditability). I feel like that's the sweet spot for low-level Go - projects that need memory safety but would rather trade some performance for simplicity.
gVisor is a very fun project - they're really pushing the boundaries of what's possible in Go. Typical overhead is <10% thanks to a number of new features (systrap[3], directfs, in-process overlay...), all while maintaining a well-documented and super clean code base.
[1]: https://github.com/google/gvisor https://github.com/google/gvisor
[2]: https://github.com/usbarmory/tamago https://github.com/usbarmory/tamago
[3]: https://gvisor.dev/blog/2023/04/28/systrap-release https://gvisor.dev/blog/2023/04/28/systrap-release