MCPcopy Index your code
hub / github.com/PacktPublishing/System-Programming-Essentials-with-Go

github.com/PacktPublishing/System-Programming-Essentials-with-Go @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
231 symbols 499 edges 112 files 30 documented · 13%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

System Programming Essentials with Go

no-image

This is the code repository for System Programming Essentials with Go, published by Packt.

System calls, networking, efficiency, and security practices with practical projects in Golang

What is this book about?

From file operations to process management and network programming, this hands-on guide equips software engineers with the skills to build efficient, reliable applications and optimize their performance.

This book covers the following exciting features: * Understand the fundamentals of system programming using Go * Grasp the concepts of goroutines, channels, data races, and managing concurrency in Go * Manage file operations and inter-process communication (IPC) * Handle USB drives and Bluetooth devices and monitor peripheral events for hardware automation * Familiarize yourself with the basics of network programming and its application in Go * Implement logging, tracing, and other telemetry practices * Construct distributed cache and approach distributed systems using Go

If you feel this book is for you, get your copy today!

Instructions and Navigations

All of the code is organized into folders. For example, ch2.

The code will look like the following:

func main() {
  cache := NewCache(5) // Setting capacity to 5 for LRU
  cache.startEvictionTicker(1 * time.Minute)
}

Following is what you need for this book: This book is for software engineers looking to expand their understanding of system programming concepts. Professionals with a coding foundation seeking profound knowledge of system-level operations will also greatly benefit. Additionally, individuals interested in advancing their system programming skills, whether experienced developers or those transitioning to the field, will find this book indispensable.

With the following software and hardware list you can run all code files present in the book (Chapter 1-15).

Software and Hardware List

Chapter Software required OS required
1-15 Golang (1.16+) Windows, macOS, or Linux

Related products

Get to Know the Author

Alex Rios is an established Brazilian software engineer with a 15-year track record of success in large-scale solution development. Alex specializes in Go and creates high-throughput systems that address diverse needs across fintech, telecom, and gaming industries. As a Staff Engineer at Stone Co., Alex applies his expertise using unconventional system designs, ensuring top-notch delivery. Also, Alex uses his expertise to evaluate books and publications as a technical reviewer. Alex is an enthusiastic community member, actively participating in its growth and development as Curitiba's Go meetup organizer. His dedication is evident in his regular presence as a speaker at major national tech events like GopherCon Brazil.

Extension points exported contracts — how you extend this code

Job (FuncType)
Job represents a task to be executed
ch5/task_scheduling/main.go
Option (FuncType)
(no doc)
ch3/cli_with_tests/main.go

Core symbols most depended-on inside this repo

Set
called by 13
ch13/cache.go
Get
called by 12
ch13/cache.go
NewCache
called by 9
ch13/cache.go
Start
called by 7
ch5/task_scheduling/main.go
NewHashRing
called by 6
ch13/hashring.go
AddNode
called by 5
ch13/hashring.go
GetNode
called by 4
ch13/hashring.go
hash
called by 3
ch13/hashring.go

Shape

Function 195
Method 19
Struct 15
FuncType 2

Languages

Go100%

Modules by API surface

appendix-a/usb/main.go10 symbols
ch13/cache.go9 symbols
ch13/hashring.go8 symbols
ch13/cache_test.go8 symbols
ch3/cli_with_tests/main.go7 symbols
ch5/task_scheduling/main.go6 symbols
ch14/buffer_pool/main.go6 symbols
ch13/server.go6 symbols
ch9/cpu-profiling/main.go5 symbols
ch13/hashring_test.go5 symbols
ch10/selective-retransmissions/main.go5 symbols
ch7/03_multiple_clients/main.go4 symbols

For agents

$ claude mcp add System-Programming-Essentials-with-Go \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact