Go Systems Programming
Погружение в системное программирование на Go
Краткое содержимое:
Введение
Книга «Go Systems Programming» (автор — Михалис Цукалос, 2017 год, 460 страниц) — это не просто очередное руководство по языку Go. Это глубокое погружение в мир системного программирования, ориентированное на разработчиков, которые хотят писать эффективные, надёжные и низкоуровневые утилиты для UNIX-подобных операционных систем. Автор, известный своими техническими книгами и статьями, предлагает практический подход, сочетающий теорию с множеством примеров кода.
О чём книга
Книга охватывает широкий спектр тем, связанных с взаимодействием программы на Go с операционной системой. Основное внимание уделяется Linux и macOS, но большинство примеров переносимы на другие UNIX-системы. Вы узнаете, как работать с файловыми системами, процессами, сигналами, сетевыми сокетами, а также как создавать собственные системные утилиты (например, аналог ps, ls или netstat).
Для кого эта книга
Книга рассчитана на программистов, уже знакомых с основами Go (синтаксис, горутины, каналы). Она будет полезна:
- Разработчикам, переходящим с C/C++ на Go и желающим сохранить контроль над системными ресурсами;
- DevOps-инженерам и администраторам, пишущим инструменты для мониторинга и автоматизации;
- Всем, кто хочет понять, как Go взаимодействует с ядром ОС на низком уровне.
Что узнает читатель
После прочтения вы сможете:
- Работать с файловыми дескрипторами и системными вызовами через пакет
osиsyscall; - Управлять процессами (создание, завершение, ожидание, сигналы);
- Создавать многопоточные серверы и клиенты с использованием сокетов TCP/UDP;
- Писать собственные утилиты командной строки с обработкой аргументов и флагов;
- Работать с временем, таймерами и синхронизацией на уровне ОС;
- Использовать пакет
os/execдля запуска внешних программ; - Понимать устройство файловых систем и работать с inode, правами доступа и ссылками.
Сильные стороны
Главное достоинство книги — практическая направленность. Каждая глава содержит множество листингов кода, которые можно сразу запустить и модифицировать. Автор не боится показывать «грязные» детали: обработку ошибок, работу с бинарными данными, особенности разных ОС. Книга написана живым языком, с примерами из реального опыта. Отдельно стоит отметить главы, посвящённые сетевым сокетам и созданию собственных серверов — они дают прочную базу для написания высоконагруженных систем.
Кому рекомендуется
Я рекомендую эту книгу всем, кто хочет выйти за рамки веб-разработки на Go и научиться писать системные инструменты, которые работают быстро и надёжно. Она будет полезна как опытным разработчикам, так и тем, кто только начинает изучать Go, но уже имеет базовые знания. Если вы хотите понять, как Go «общается» с ядром Linux — эта книга для вас.