0% found this document useful (0 votes)
3 views3 pages

Phase 3 Golang Low Level Learning

Phase 3 of Golang Low-Level Learning focuses on understanding Go's low-level capabilities, including memory management, concurrency internals, system programming, profiling, and compiler insights. It covers topics such as garbage collection, goroutines, file descriptors, and interfacing with C. Practical projects are included to reinforce learning, along with references for further reading.

Uploaded by

topwin34
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views3 pages

Phase 3 Golang Low Level Learning

Phase 3 of Golang Low-Level Learning focuses on understanding Go's low-level capabilities, including memory management, concurrency internals, system programming, profiling, and compiler insights. It covers topics such as garbage collection, goroutines, file descriptors, and interfacing with C. Practical projects are included to reinforce learning, along with references for further reading.

Uploaded by

topwin34
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Phase 3: Golang Low-Level Learning

1. Introduction

Objective: Understand Gos low-level capabilities.

Prerequisites: Solid understanding of basic Go syntax, data types, and interfaces.

2. Memory Management in Go

- Stack vs Heap allocation

- Garbage Collection

How Gos GC works

How to reduce GC pressure

- Escape Analysis

Use `go build -gcflags="-m"` to inspect

- Unsafe Package

Pointer arithmetic

Bypassing type safety

3. Concurrency Internals

- Goroutines

How goroutines are scheduled (M:N model)

Stack growth

- Channels

Blocking & buffering

Select statements

- sync Package

Mutex, RWMutex
Phase 3: Golang Low-Level Learning

WaitGroup, Once

- Atomic Operations

`sync/atomic` usage

Low-level synchronization

4. System Programming

- File Descriptors & I/O

`os`, `syscall`, `bufio`

- Signals and Process Management

Using `os/signal`, `os/exec`

- Interfacing with C

`cgo` basics

Calling C libraries

- Network Programming

Low-level TCP/UDP using `net` & `syscall`

5. Profiling and Performance

- pprof

CPU, memory, goroutine profiling

- Benchmarking

Writing and interpreting `testing.B` benchmarks

- Tracing

`runtime/trace`
Phase 3: Golang Low-Level Learning

6. Compiler and Toolchain Insights

- Go build process

Source SSA Machine code

- Linker and Loader

- Using `go tool compile` and `go tool objdump`

7. Practical Projects

- Memory allocator in Go (with `unsafe`)

- Mini-shell using `os/exec` and pipes

- Profiling a concurrent HTTP server

8. References & Further Reading

- Official Go Blog

- Go Source Code (https://github.com/golang/go)

- "The Go Programming Language" by Alan Donovan & Brian Kernighan

You might also like