Linux и Go, Эффективное низкоуровневое программирование, Цилюрик О.И., 2023.
Первая русскоязычная книга об интеграции языка Go в архитектуру ядра Linux. Содержит вводный курс по языку Go для системного программирования, описывает применение Go для реализации конкурентности и параллелизма, рассказывает об интероперабельности между имеющимся кодом на С с новым кодом на Go, а также исследует возможности внедрения Go для повышения производительности различных дистрибутивов.
Книга ориентирована на программистов и системных администраторов, работающих с Linux, будет интересна разработчикам ядра Linux и драйверов устройств.

Неформально о синтаксисе Go.
Синтаксис Go во многом заимствуется из классического С (у них общие авторы), что сильно снижает порог начального вхождения в работу с языком для имеющих минимальный опыт работы с C/C++. Go является прямым развитием языковой линии C/C++, но с заимствованиями многих «находок» из Oberon, Python, функциональных и скриптовых языков. Мы об этом уже говорили ранее.
Именно поэтому этот раздел озаглавлен «неформально»: во-первых, потому что изложение опирается на аналогии из С. который предполагается более-менее известным. а, во-вторых, потому что описание ниже акцентируется на тех сторонах Go, которые понадобятся дальше в рассмотрении параллельных вычислений, а некоторые другие стороны или названы вскользь, или даже совершенно опущены.
ОГЛАВЛЕНИЕ.
Предисловие.
Предназначение и целевая аудитория.
Код примеров и замеченные опечатки.
Соглашения и выделения, принятые в тексте.
Напоминание.
Источники информации.
ЧАСТЬ I. ИНСТРУМЕНТАРИЙ ЯЗЫКА GO.
ГЛАВА 1. Предыстория Go.
«Отцы-основатели» о целях и мотивации….
Применимость: беглый взгляд.
Go, C, C++ и другие….
Источники информации.
ГЛАВА 2. Разворачиваем экосистему Go.
Создание среды.
Стандартная инсталляция.
Версии среды.
Альтернативы.
«Самая последняя» версия.
Смена версий.
Проверяем: простейшая программа.
Проверяем на простейшем приложении.
Библиотеки статические и динамические.
Компиляция или интерпретация.
Выбор: GoLang или GCC?.
Инфраструктура GoLang.
Команды go.
Переменные окружения.
Платформы, переносимость и кросс-компиляция.
Стиль кодирования (автоформатирование — fmt).
Сборка приложений (build).
Сценарии на языке Go (run).
Загрузка проектов из сети (get).
Утилиты GoLang (tool).
Связь с кодом C (Cgo).
Сторонний и дополнительный инструментарий.
Источники информации.
ГЛАВА 3. Неформально о синтаксисе Go.
Типы данных.
Переменные.
Выполнение такого приложения.
Повторные декларации и переприсваивания.
Константы.
Агрегаты данных.
Массивы и срезы.
Двухмерные массивы и срезы.
Структуры.
Таблицы (хэши).
Динамическое создание переменных.
Конструкторы и составные литералы.
Операции.
Функции.
Вариативные функции.
Стек процедур завершения.
Обобщенные функции.
Функции высших порядков.
Встроенные функции.
Объектно-ориентированное программирование.
Методы.
Интерфейсы.
Обработка ошибочных ситуаций.
Структура пакетов (библиотек) Go.
Функция init.
Импорт для использования побочных эффектов.
Некоторые полезные и интересные стандартные пакеты.
Пакет runtime.
Форматированный ввод-вывод.
Строки и пакет strings.
Большие числа.
Автоматизированное тестирование.
Источники информации.
ЧАСТЬ II. КОНКУРЕНТНОСТЬ И МНОГОПРОЦЕССОРНОСТЬ.
ГЛАВА 4. Процессоры в Linux.
Процессоры, ядра и гипертрэдинг.
Загадочная нумерация процессоров.
Управление процессорами Linux.
Привязка к процессору.
Как происходит диспетчирование в Linux.
Источники информации.
ГЛАВА 5. Параллелизм и многопроцессорность.
Эволюция модели параллелизма.
Параллельные процессы и fork.
Потоки ядра и pthread_t POSIX.
Сопрограммы — модель параллелизма Go.
Параллелизм в Go.
Сопрограммы — как это выглядит.
Возврат значений функцией.
Ретроспектива: сопрограммы в C++.
Каналы.
Функциональные замыкания в сопрограммах.
Примитивы синхронизации.
Конкурентность и параллельность.
Источники информации.
ГЛАВА 6. Масштабирование.
Планирование активности сопрограмм.
Испытательный стенд.
Микрокомпьютеры (Single-Board Computers).
Рабочие десктопы.
Серверы промышленного класса.
Масштабирование в реале.
1-я попытка….
2-й подход к снаряду….
О числе потоков исполнения.
Источники информации.
ЧАСТЬ III. НЕКОТОРЫЕ ПРИМЕРЫ И СРАВНЕНИЯ.
ГЛАВА 7. Осваиваемся в синтаксисе Go.
Утилита echo.
Итерационное вычисление вещественного корня.
Вычисление числа π.
Случайная последовательность и ее моменты.
Обсчет параметров 2D выпуклых многоугольников.
Тривиальный web-сервер.
Источники информации.
ГЛАВА 8. Структуры данных, типы и их методы.
Массивы и срезы.
Многомерные срезы и массивы.
Функции с множественным возвратом.
ГЛАВА 9. Элементы функционального программирования.
Функциональные замыкания.
Карринг.
Рекурсия.
Рекурсия с кэшированием.
Чистые функции.
Источники информации.
ГЛАВА 10. Скоростные и другие сравнения языков.
Алгоритмические задачи для сравнения.
Некоторые известные алгоритмы.
Числа Фибоначчи.
Пузырьковая сортировка.
Ханойская башня.
Решето Эратосфена.
ГЛАВА 11. Многопроцессорные параллельные вычисления.
Скорость активации параллельных ветвей.
Гонки.
Защита критических данных.
Многопроцессорный брутфорс.
Каналы в сопрограммах.
Таймеры.
Тикеры.
Когда не нужно злоупотреблять многопроцессорностью.
Источники информации.
Заключение.
Об авторе.
Ниже можно купить эту книгу, если она есть в продаже, и похожие книги по лучшей цене со скидкой с доставкой по всей России.Купить книги
Купить .
Купить .
По кнопкам выше и ниже «Купить бумажную книгу» и по ссылке «Купить» можно купить эту книгу с доставкой по всей России и похожие книги по самой лучшей цене в бумажном виде на сайтах официальных интернет магазинов Лабиринт, Озон, Буквоед, Читай-город, Литрес, My-shop, Book24, Books.ru.
По кнопке «Купить и скачать электронную книгу» можно купить эту книгу в электронном виде в официальном интернет магазине «Литрес», если она у них есть в наличии, и потом ее скачать на их сайте.
По кнопке «Найти похожие материалы на других сайтах» можно найти похожие материалы на других сайтах.
On the buttons above and below you can buy the book in official online stores Labirint, Ozon and others. Also you can search related and similar materials on other sites.
Теги: учебник по программированию :: программирование :: Цилюрик












