3 ms·
>"Ordinary non-C languages on Unixes generally implement a great many low level operations by calling into the standard C library. This starts with things like
by peter_d_sherman 6y ago
>"Ordinary non-C languages on Unixes generally implement a great many low level operations by calling into the standard C library. This starts with things like making system calls, but also includes operations such as getaddrinfo(3).
Go doesn't do this; it implements as much as possible itself, going straight down to direct system calls in assembly language.
Occasionally there are problems that ensue."
This is an interesting tidbit about Go to the perspective of an OS designer; basically an aspiring OS designer would only need to implement the subset of the Unix API syscalls that Go actually required, and only to the degree that Go needed specific functionality from them; that is,
it would be an interesting idea to code a new OS and/or OS microkernel -- which would only support Go's subset of Unix's syscalls/API...
Or, perhaps even more interesting -- code a 'bare-metal' version of Go which includes its own OS-like support code (mini internal OS functionality), implementing the Unix syscalls it makes, but on bare metal hardware..."
- zokier 6y agoIsn't Tamago (that hit the front page few days ago) exactly that sort of bare-metal Go https://github.com/f-secure-foundry/tamago https://github.com/f-secure-foundry/tamago