A native Go userland for your Raspberry Pi 3 or 4 appliances
21–30 of 37 posts
Re: A native Go userland for your Raspberry Pi 3 or 4 appliances
#22an 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 o…
Re: A native Go userland for your Raspberry Pi 3 or 4 appliances
#23an 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 o…
Wondering if they can achieve that.
Re: A native Go userland for your Raspberry Pi 3 or 4 appliances
#24an 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 o…
Re: A native Go userland for your Raspberry Pi 3 or 4 appliances
#25Earlier quoted context omitted.
If 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).
I guess, but this argument is basically just saying "RPi is basically just a normal computer now so why be conservative with anything?"
Re: A native Go userland for your Raspberry Pi 3 or 4 appliances
#26an 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 o…
Re: A native Go userland for your Raspberry Pi 3 or 4 appliances
#27an 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 o…
Urgh! This is really not good for most embedded systems both for space constraints and having to load large binaries from slow devices.
Re: A native Go userland for your Raspberry Pi 3 or 4 appliances
#28Is this kinda like the Nerves approach but for Golang? ( https://github.com/nerves-project/nerves )
This 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?
Re: A native Go userland for your Raspberry Pi 3 or 4 appliances
#29Earlier quoted context omitted.
To 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)
What'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.
pi@octopi:~ $ sudo hdparm -tT /dev/mmcblk0
/dev/mmcblk0:
Timing cached reads: 1366 MB in 2.00 seconds = 683.30 MB/sec
Timing buffered disk reads: 62 MB in 3.02 seconds = 20.53 MB/sec
So it's going to take a couple seconds to page this thing into memory. (The memory speed isn't great either.) It's not so slow that I'd bother to write application software in C just to make startup 5 seconds faster, though.Meanwhile on a Threadripper 3970x with SSD (but virtualized):
$ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 20200 MB in 2.00 seconds = 10109.10 MB/sec
Timing buffered disk reads: 5296 MB in 3.00 seconds = 1763.28 MB/secRe: A native Go userland for your Raspberry Pi 3 or 4 appliances
#30Earlier quoted context omitted.
> 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).
> 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".
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.