3 Comments
User's avatar
Naveen Siddareddy's avatar

Local first software is not only needed in software but in the people world as well.. give those 7 features to local communities and see .. it was once like that and we were more aligned to earth ?

Expand full comment
Naveen Siddareddy's avatar

Writing this with not much thinking ..when go programs run they run with full dependencies across many OS , NixOS one level deeper but only across Linux OS

Expand full comment
Gabriel Guerra's avatar

Great point.

Yes, Go programs are statically linked by default, which means all dependencies are included in the binary. But, even statically linked Go binaries still need to interact with the operating system's ELF program loader to start execution. The hard coded location of the ELF program loader into the executable is the issue.

My understanding is that most modern linux distributions place this ELF program loader in the same /lib64/ directory. This commonality in location contributes to the compatibility of Go binaries across many Linux distributions. NixOS works differently and stores it in /nix/store/**. This is the main thing that causes the compatibility issue. Many of the topics in the blog were new to me, so let me know if that makes sense. Thank you.

Expand full comment