go runtime子包结构(v1.11)

  • cgo
  • debug
  • internal
    • atomic 大概是一些汇编代码和声明/定义了原子操作(不同平台的支持不一样)
    • sys 定义了不同系统的参数值
  • msan
  • pprof
  • race
    • 追踪基础
  • testdata
  • trace

runtime 模块(按文件名)

  • alg.go

    声明/定义了一些hash方法,和内存/指针有关,估计是为了方便查找用的

  • asm*.s

    不知道具体干什么的,看起来和初始化有关

  • atomic_pointer.go 和 atomic*.s

    atomic*.s 给出了 .publicationBarrier (不知道干什么的)
    atomic_pointer.go 定义了原子操作交换指针/内存??的各种方法

  • cgo*.go

    和c交互有关的各种函数

  • chan*.go

    channel 实现

  • complier.go

    默认编译器名称

  • complex.go

    复数实现,负数除法complex128div

  • cpuprof.go
  • debug.go

    对debug包的支持,GOMAXPROCS方法会锁住调度进行STW.

  • debugcall.go

    提供对debugger函数调用的检查

  • def*.go

    定义的一些系统参数

  • duff*.s

    makeduff.go生成的

  • env*.go

    获取系统环境变量

  • extern.go

    go版本信息

  • fastlog2*.go

    log2 运算

  • float.go

    float64的操作

  • funcdata.h

    用c定义的Go函数的基本信息字段

  • go_tls.h

    ???

  • hash*.go

    内存哈希算法

  • heapdump.go

    输出heap信息

  • iface.go

    interface{}相关实现

  • ifstack*.go

    // lfstack is the head of a lock-free stack.
    //
    // The zero value of lfstack is an empty list.
    //
    // This stack is intrusive. Nodes must embed lfnode as the first field.
    //
    // The stack does not keep GC-visible pointers to nodes, so the caller
    // is responsible for ensuring the nodes are not garbage collected
    // (typically by allocating them from manually-managed memory).

  • lock*.go

    锁实现

  • malloc*.go

    内存分配实现?

  • map*.go

    map 实现

  • mbarrier.go

    ???

  • mbitmap.go

    ???

  • mcache.go

    ???

  • mcentral.go

    ???

  • mem*.go

    内存相关

  • memclr*.s

    memory clear

  • memmove*.s

    memory move

  • mfinal.go
  • mfixalloc.go
  • mgc*.go

    gc 相关

  • mheap.go
  • mkduff.go
  • mkfastlog2table.go
  • mkfsizeclass.go
  • mmap.go
  • mprof.go
  • msan*.s
  • msan*.go
  • mszie.go
  • mstats.go
  • mwbuff.go
  • net_plan9.go
  • netpoll*.go
  • os*.go
  • panic.go
  • plugin.go
  • print.go
  • proc.go
  • profbuf.go
    • cpuprof写出的地方
  • proflabel.go
  • race*.s
  • race*.go
  • rdebug.go
  • relax_stub.go
  • rt0*.s
  • runtime*.go
  • rwmutex*.go
  • select.go
  • sema.go
  • sigaction.go
  • signal*.go
  • sigqueue.go
  • sigtab*.go
  • sizeclasses.go
  • slice.go
  • softfloat64.go
  • stack.go
  • string.go
  • stubs*.go
  • symtab.go
  • sys*.go
  • sys*.s
  • syscall_nacl.h
  • syscall*.go
  • textflag.h
  • time*.go
  • tls*
  • trace.go
  • traceback.go
  • type*.go
  • unaligned*.go
  • utf8.go
  • vdso*.go
  • vlop*
  • wincallback.go
  • write_err*.go
  • zcallback_windows*