golang /

Go

Live map
Snapshotmaster · 72aa6db

A Go program's path from `go build` through native linking, then through goroutines, GC, and network polling at runtime.

Click a building or route
Choose a path

Follow package selection into compilation, SSA optimization, object emission, and final linking with the runtime.

System map8 components · 9 connections
130%
Go toolchain and runtime architectureThe upper row is the build-time toolchain. Its executable enters the runtime district below, where the scheduler coordinates goroutines with garbage collection and non-blocking network I/O.subcommand, package pa…Go source list, import…typed IR functions, de…object files, symbols,…linked runtime symbols…Compilerfront endgo commandGo linkerBuildcoordinatorSSA backendGoroutineschedulerNetwork pollerGarbagecollector
Connections
BuildingsEntryServiceComputeStorageRuntimeToolingExternal

Terms, in plain English

Package action graphA dependency graph of compile, archive, and link steps needed to produce the requested Go target.

How to study this repo

  1. 1
    Build one tiny package

    Run `go build -x` and match the printed compile/link commands to cmd/go/internal/work/build.go.

  2. 2
    Learn G-M-P visually

    Read runtime/proc.go's scheduler comments, then sketch how two Ps can run many goroutines across changing Ms.

  3. 3
    Connect I/O and GC

    Trace how netpoll returns ready goroutines and how concurrent mark workers compete for the same scheduler processors.