《Go 语言原本》

附录A:源码文件分配索引及完成情况

TODO: 等全书写完后,重新组织本附录

下面列出了 Go 源码文件所实现的功能,以及他们主要功能的介绍,在本书正文中对应的(粗略)位置:

第 5 章 Go 程序生命周期

boot:

  • src/cmd/go
  • src/cmd/internal/compile
  • src/internal/cpu
  • src/runtime
    • rt0_darwin_amd64.s
    • rt0_js_wasm.s
    • rt0_linux_amd64.s
    • runtime1.go
    • os_darwin.go
    • os_linux.go
    • go_tls.h

第 6 章 调度器

sched, runtime sync:

  • src/os
    • /signal
  • src/runtime
    • sched
      • runtime.go
      • runtime2.go
      • proc.go
      • stack.go
    • signal
      • os_linux_generic.go
      • sigaction.go
      • signal_amd64x.go
      • signal_darwin.go
      • signal_darwin_amd64.go
      • signal_linux_amd64.go
      • signal_unix.go
      • sigqueue.go
      • sigtab_linux_generic.go
    • sync
      • sema.go
      • lock_futex.go
      • lock_js.go
      • lock_sema.go
      • rwmutex.go
  • src/net
  • src/time
  • src/runtime
    • net
      • netpoll.go
      • netpoll_epoll.go
      • netpoll_fake.go
      • netpoll_kqueue.go
      • netpoll_stub.go
    • time
      • time.go
      • timestub.go
      • timestub2.go
      • time_fake.go

第 7 章 内存分配

allocator:

  • src/runtime
    • malloc.go
    • mcache.go
    • mcentral.go
    • mprof.go
    • mfixalloc.go
    • mheap.go
    • mmap.go
    • msize.go
    • mstats.go
    • mkduff.go
    • duff_amd64.s
    • mksizeclasses.go
    • sizeclasses.go
    • mem_darwin.go
    • mem_js.go
    • mem_linux.go
    • memclr_amd64.s
    • memclr_wasm.s
    • memmove_amd64.s
    • memmove_wasm.s
    • mscavenger.go

第 8 章 垃圾回收

GC:

  • src/runtime
    • mgc.go
    • mgclarge.go
    • mgcmark.go
    • mgcsweep.go
    • mgcsweepbuf.go
    • mgcwork.go
    • mbarrier.go
    • mwbbuf.go
    • mbitmap.go
    • lfstack.go
    • lfstack_64bit.go
    • mfinal.go

第 9 章 语言核心

runtime type system / keywords:

  • src/go/types
  • src/reflect
  • src/runtime
    • type
      • type.go
      • typekind.go
    • float
      • softfloat64.go
      • float.go
    • chan/select
      • chan.go
      • select.go
    • defer/panic/recover
      • panic.go
    • map
      • fastlog2.go
      • mkfastlog2table.go
      • fastlog2table.go
      • alg.go
      • map.go
      • map_fast32.go
      • map_fast64.go
      • map_faststr.go
      • hash64.go
      • heapdump.go
    • interface{}
      • iface.go
    • slice
      • slice.go
    • string
      • string.go
      • utf8.go

第 10 章 兼容与契约

syscall/cgo:

  • src/syscall
  • src/cmd
    • /cgo
  • src/runtime
    • /cgo
    • cgo.go
    • cgo_mmap.go
    • cgo_sigaction.go
    • cgocall.go
    • cgocallback.go
    • cgocheck.go
    • cpuprof.go
    • textflag.h
    • funcdata.h
    • defs_linux_amd64.go
    • defs_darwin_amd64.go
    • plugin.go

第 11 章 调试组件

race/trace/pprof/msan:

  • src/runtime
    • profbuf.go
    • proflabel.go
    • race.go
    • race0.go
    • race_amd64.s
    • trace.go
    • traceback.go
    • debug.go
    • debugcall.go
    • msan.go
    • msan0.go
    • msan_amd64.s

第 12 章 依赖管理

第 13 章 编译器

  • src/unsafe
  • src/cmd
    • /compile
    • /internal/obj

第 14 章 链接器

第 15 章 同步模式

  • src/sync
    • /atomic
      • atomic_pointer
      • internal/atomic
      • internal/sys
    • Map
    • Once
    • Pool
    • WaitGroup
    • Cond
    • Mutex
    • Rwmutex

第 16 章 网络操作

第 17 章 错误处理

  • src/errors
  • src/fmt.Errorf

第 18 章 泛型与合约

通用

  • common
    • asm.s
    • asm_amd64.s
    • asm_wasm.s
  • stub
    • extern.go
    • symtab.go
    • cpuflags_amd64.go
    • cputicks.go
    • env_posix.go
    • error.go
    • print.go
    • write_err.go
    • relax_stub.go
    • stubs.go
    • stubs2.go
    • stubs3.go
    • stubs_linux.go
    • stubs_nonlinux.go
    • stubs_x86.go
    • sys_darwin.go
    • sys_darwin_amd64.s
    • sys_linux_amd64.s
    • sys_wasm.go
    • sys_wasm.s
    • sys_x86.go
    • unaligned1.go