6 ms·
A native Go userland for your Raspberry Pi 3 or 4 appliances
- zokier 5y agoIf you want to go deeper, there is also bare-metal Go runtime for rpi (among others): https://github.com/f-secure-foundry/tamago https://github.com/f-secure-foundry/tamago
- allanrbo 5y agoInteresting! How does it differ from Gocrazy?
- yencabulator 5y agogokrazy is Linux, tamago is not.
- znpy 5y agoIs it just me or this feels like, effectively, a whole gnu/linux distribution?
- denysvitali 5y agoMore like Go/Linux
- daenney 5y ago> aside from the Linux kernel and proprietary Raspberry Pi bootloader — only contains Go software. Given this is what the README states, how can it be a GNU/Linux distribution? It doesn’t include a shell or anything like coreutils either (GNU or otherwise).
- znpy 5y ago> how can it be a GNU/Linux distribution? You're taking a few F/OSS components (in this case the Linux kernel, the golang toolchain and some custom software) and you're assemblying them into a bootable system. That's almost quite literally the definition of "gnu/linux distribution".
- wyufro 5y agoWhat, no. It's not GNU/Linux if there's no GNU software present.
- daenney 5y agoI think you might be misunderstanding what GNU/Linux means. GNU/Linux, or GNU plus Linux as I’ve recently taken to calling it, means combining a GNU userland (GNU libc, GNU coreutils, GNU compiler collection) and the Linux kernel. The Linux kernel itself is not a GNU project. If you want to use a GNU kernel then you need Hurd, hence GNU/Hurd. When you replace the whole userland with components that are not written by the GNU project, then it no longer is GNU/Linux. As such this is not a GNU/Linux distribution, and neither is Alpine for example since by default it doesn’t use a GNU userland.
- lovebes 5y agoIs this kinda like the Nerves approach but for Golang? (https://github.com/nerves-project/nerves https://github.com/nerves-project/nerves)
- jcpst 5y agoThis space is really interesting to me- developing for pi by bundling up a whole image, for weird little software/hardware experiments. Anyone know if there a list of these types of frameworks anywhere?
- convolvatron 5y agothere should be - here's one: https://nanovms.com/dev/tutorials/nanos-on-64-bit-arm https://nanovms.com/dev/tutorials/nanos-on-64-bit-arm
- synergy20 5y agoan interesting project. the size of the image concerns me: kernel+boot 100MB, with C it could be 4MB. kernel+boot+basicpackages 500MB, with C it could be 16MB. Golang is designed to be static all-in-one packages for each application(e.g. microservices), when you run a lot of them in any given system, it becomes really large together. I don't mind to use one or two go binaries in my embedded board, when I need a few of them, I am concerned about the storage size(possibly memory size as well).
- laumars 5y agoThe only place on the readme where I could find those figures you came up with was the partition table and obviously a partition of 500MB doesn’t mean the applications are going to be 500MB in size. In fact it’s quite the opposite; it pretty much guarantees the applications are going to be less than 500MB given you are going to want some headroom to work with.
- Kipters 5y agoTo be fair, this is designed for Raspberry Pi, and nowadays it's almost impossible to find a micro SD that's less than 16 GB and costs significantly less than a 16 GB one, I don't think a couple hundred MBs are a concern (even if it hurts my soul too)
- Karellen 5y agoWhat's the max/typical read bandwidth from an SD card on a Pi? Even if the storage space is there, you might still get perceptible latency improvements with order-of-magnitude smaller binaries.
- laumars 5y agoIf that’s an issue just cache the file in RAM. 500MB is still less than the system memory on a Pi (and as I’ve pointed elsewhere, the OP was reading the partition table not the application file sizes).
- 5y ago
- kelvie 5y agoIt took a bit of digging, but it seems that encrypted wifi is not supported: https://github.com/gokrazy/gokrazy/issues/13 https://github.com/gokrazy/gokrazy/issues/13 And if you read the issue, it's a bit understandable to not want to reimplement wpa_supplicant.
- rcarmo 5y agoYep, but that makes it a non-starter for most Pi deployments, I think -- especially on Zero Ws, which is where this would be most interesting.
- waymon 5y agonow only to somehow buy a Raspberry Pi 3 or 4