The Go internals unofficial wiki

Memory diagram of a Go slice and its underlying array
Image credits: Andrew Gerrand

The Go internals unofficial wiki formerly published on goin.wikispot.org used to be a valuable resource for developers interested in the internal operation of the Go runtime.

Regrettably, it disappeared when the owner of the wikispot.org domain abandoned it in April 2014.

I spent a couple of hours earlier today restoring and reformatting its content, which is now available again, in the Go section of the Audean wiki.

Appreciate the info, but with a cool head : its content was current in 2014, not last !

On the menu:

  • Information about the Go assembler
  • The FS register in the Go assembler
  • The g variable and G type for goroutines
  • The get_tls(r) assembler macro
  • The m variable and M type for threads
  • Collected information about the content of some source files
  • How the segmented stack used to work until it was replaced in Go 1.4
  • The stdcall and other calling conventions of the x86 architecture
  • The textflag 7 flag and the linker
  • Collected articles found on other sites, also related to the internal operation of the Go runtime
  • The operation of thread local storage