Go Systems Programming
Go Systems Programming
简介:
引言
《Go Systems Programming》一书(作者:米哈利斯·楚卡洛斯,2017年出版,460页)并非又一本普通的Go语言指南。它深入探讨了系统编程世界,面向那些希望为类UNIX操作系统编写高效、可靠且底层工具的开发者。作者以其技术书籍和文章而闻名,提供了理论与实践相结合的方法,并附有大量代码示例。
本书内容
本书涵盖了Go程序与操作系统交互的广泛主题。主要关注Linux和macOS,但大多数示例可移植到其他UNIX系统。您将学习如何处理文件系统、进程、信号、网络套接字,以及如何创建自己的系统工具(例如,类似ps、ls或netstat的工具)。
适合读者
本书面向已熟悉Go基础知识的程序员(语法、goroutine、通道)。它将有助于:
- 从C/C++转向Go并希望保持对系统资源控制的开发者;
- 编写监控和自动化工具的DevOps工程师和管理员;
- 所有希望了解Go如何在底层与操作系统内核交互的人。
读者将学到什么
阅读后,您将能够:
- 通过
os和syscall包处理文件描述符和系统调用; - 管理进程(创建、终止、等待、信号);
- 使用TCP/UDP套接字创建多线程服务器和客户端;
- 编写带有参数和标志处理的自定义命令行工具;
- 在操作系统层面处理时间、定时器和同步;
- 使用
os/exec包运行外部程序; - 理解文件系统结构,并处理inode、权限和链接。
优势
本书的主要优点是注重实践。每一章都包含大量可直接运行和修改的代码清单。作者不避讳展示“棘手”的细节:错误处理、二进制数据处理、不同操作系统的特性。本书语言生动,包含来自实际经验的示例。特别值得一提的是关于网络套接字和创建自定义服务器的章节——它们为编写高负载系统奠定了坚实基础。
推荐人群
我向所有希望超越Go Web开发、学习编写快速且可靠的系统工具的人推荐本书。无论对于经验丰富的开发者,还是刚开始学习Go但已具备基础知识的读者,本书都很有价值。如果您想了解Go如何与Linux内核“交流”——这本书就是为您准备的。