Читательские обзоры книг по IT-тематике, часть 2

0
129
views
Читательские обзоры книг

Представляем вторую часть читательских обзоров книг по IT-тематике, сделанных автором блога «Записки программиста». Первую часть читайте здесь.

Hacking Exposed: Wireless, 3th edition

Joshua Wright, Johnny Cache

Hacking Exposed Wireless, Third Edition

Эту книгу упоминал Michael Ossmann в своем докладе про Ubertooth.

Книга описывает атаки на Wi-Fi, включая атаки на пользователей при помощи фреймворка Metasploit и его модулей http_capture, fakedns и browser_autopwn. Рассматриваются атаки на Bluetooth и объясняется, почему Ubertooth работает только с Bluetooth Classic и Bloetooth Low Energy, но не с Bluetooth EDR. Дело в том, что последний использует GFSK только в заголовках пакетов, а саму информацию передает в DQPSK, либо в DPSK. Однако чип CC2400, используемый в Ubertooth, умеет демодулировать только FSK и GFSK. Из описания BLE вы узнаете, что он очень похож на протокол NRF24L01. Оба используют частоту 2.4 ГГц и модуляцию GFKS, однако в BLE также используется Frequency Hopping Spread Spectrum (FHSS). Другими словами, каналы меняются с целью борьбы с помехами.

Есть быстрое введение в SDR и DSP. Объясняется, какой SDR выбрать и как пользоваться GNU Radio. Рассматривается безопасность сотовых сетей, в том числе сниффинг пакетов 2G и взлом ключа алгоритма A5/1, поднятие базовой станции GSM при помощи YateBTS и BladeRF, атаки на 2G и 3G сети при помощи femtocells. Также в книге описаны атаки на ZigBee и Z-Wave. Материалы по RFID, к сожалению, в книге отсутствуют.

Мне особенно понравилось, что авторы используют в основном открытые инструменты. Кроме того, всегда достаточно подробно объясняется, что именно происходит, а не просто «нажмите Next, Next, Next — ура, работает».

Считаю, что книга отличная. Есть множество других книг из серии Hacking Exposed. Возможно, имеет смысл с ними тоже ознакомиться.

SystemTap Beginners Guide

Don Domingo, William Cohen

SystemTap Beginners Guide

SystemTap — довольно полезный инструмент. Его можно использовать как для трассировки ядра операционной системы и приложений, так и для профайлинга. Чуть подробнее о SystemTap рассказывается в заметке Установка и простые примеры использования SystemTap.

Из книги узнал, как установить SystemTap на RHEL / CentOS, как собрать модуль ядра с пробами на одной машине, а использовать его на другой, не имеющей отладочных символов, узнал про существование flight recorder mode. Есть интересные примеры в стиле как посмотреть, какие процессы в системе генерируют больше всего сетевого трафика или активнее всего используют диск, мониторинг входящих TCP соединений, и подобного плана.

Книга распространяется бесплатно и доступна в разделе с документацией на сайте SystemTap.

Ядро Linux, описание процесса разработки, 3-е издание

Роберт Лав

Ядро Lunux, описание процесса разработки, 3-е издание

Книга о внутреннем устройстве ядра Linux, удивительным образом не успевшая сильно устареть с 2010-го года. По крайней мере, если верить народу из рассылки kernelnewbies@. Даже если информация из книги немного и потеряла свою актуальность, это все равно превосходная книга о дизайне операционных систем в целом.

Не удивительно, что перевод книги на русский язык печатают до сих пор. Перевод, кстати, хороший, бумага качественная, переплет твердый.

Proxmox Cookbook

Wasim Ahmed

Proxmox Cookbook

Proxmox VE — это система для создания собственного IaaS на основе Debian Linux, KVM и LXC (до версии 4.0 вместо LXC использовался OpenVZ). Почти как Parallels Virtual Automation, только бесплатная (при желании можно заплатить за техподдержку) и open source (AGPL).

В книге помимо прочего описывается настройка bonding, InfiniBand, IPS / IDS Suricata, мониторинг Proxmox при помощи Zabbix и другие интересные темы. Увы, существенная часть книги состоит из описания веб-интерфейса Proxmox и инструкций в стиле «кликните сюда, затем нажмите Далее, в появившимся окошке нажмите ОК».

В общем и целом книга, бесспорно, классная. Просто она является скорее настольным справочником, чем книгой для чтения. В крайнем случае можно прочитать книгу по-диагонали за один вечер, просто чтобы составить общие впечатления о возможностях Proxmox. Но вдумчиво читать ее от корки до корки особого смысла не имеет.

Designing Data-Intensive Applications

Martin Kleppmann

Designing Data-Intensive Applications

Книга является своего рода сборником самого главного, что нужно знать о разработке бэкендов, распределенных систем, баз данных, и подобных вещей. Притом, акцент в книге сделан на практику. То есть, в ней вы не найдете скучных формул и нудных доказательств теорем, как в некоторых других книгах по распределенным системам.

Помимо прочего, приводится объяснение работы движков хранения данных, таких, как RocksDB, ровно как и работы CRDT, репликации, а также шардинга, перебалансировки и распределенных транзакций. Если вы подзабыли, что такие OLAP-кубы и всякие там звездочки и снежинки, книга напомнит вам и об этом. Наконец, в ней вы найдете описание форматов ThriftProtobuf и Avro.

Если вы достаточно давно варитесь во всей этой теме, то вряд ли узнаете из книги много нового. Впрочем, освежить и немного систематизировать знания никогда не бывает вредным.

Я лично считаю, что книга крутая. Рекомендую также подписаться на блог автора.

C++ Concurrency in Action

Anthony Williams

C++ Concurrency in Action

Первая половина книги подробно описывает примитивы для написания многопоточных приложений, которые были добавлены в C++11, всякие там std::thread, std::mutex, атомарные типы, и так далее. При этом воды не так уж и много, так что, эта часть весьма хороша и полезна.

Во второй же половине речь идет о том, как продумать архитектуру многопоточного приложения и написать параллельный quicksort, какие типы ошибок встречаются в многопоточных приложениях, и как важно покрывать все тестами. Также приводятся реализации самопальных lock-free структур данных. Само собой разумеется, без каких-либо бенчмарков и тестов на корректность. Эта часть книги мне не очень понравилась, хотя бы по той причине, что по этой теме было написано немало книг куда лучше, см мои предыдущие обзоры. Эту половину я, что называется, прочитал по-диагонали.

Неудобные вопросы, например, о том, как потоки взаимодействуют с сигналами или fork(), автор тактично обошел стороной. Приводится самопальная реализация пула процессов, но без какого-либо упоминания epoll или libevent, ради которых эти самые пулы процессов обычно и пишутся. Подобное велосипедостроение наряду с кучей многостраничных аналогий в стиле «представьте, что вы строите дом» и «а теперь представьте, что вы стоите в очереди в магазине» сильно подпортило впечатление от книги.

Мое мнение таково, что реальную ценность имеют только первые 200-250 страниц книги. Учитывая, что на них пересказывается десяток страниц с сайта cppreference.com, считаю, что общая ценность сей книги весьма сомнительна.

SSH Mastery: OpenSSH, PuTTY, Tunnels and Keys

Michael W Lucas

SSH Mastery: OpenSSH, PuTTY, Tunnels and Keys

Небольшая книжка от знаменитого Michael Lucas, автора книг «Absolute FreeBSD», «Absolute OpenBSD», «PGP & GPG: Email for the Practical Paranoid» и многих других. Решил прочитать, чтобы проверить, может я чего-то не знаю про SSH.

Оказалось, что кое-чего действительно не знал. Например, что sshd умеет запускать оболочку под chroot. Или что при сильном желании поверх SSH можно настроить полноценный VPN. Книга читается легко и приятно, а также полна забавных выражений вроде «choose the headache you prefer».

Считаю, что освежить свои знания с ее помощью никому не повредит.

The Art of Multiprocessor Programming

Maurice Herlihy, Nir Shavit

The Art of Multiprocessor Programming

Захотелось разобраться в lock free алгоритмах и структурах данных, а везде вроде как эту книгу рекомендуют.

Книгу нельзя назвать легким чтивом. В начале книги много математических формализмов и доказательств теорем, притом в контексте задач, явно имеющих посредственное отношение к практике. Эта часть довольно сложна для восприятия. Но потом начинается практика и там все довольно хорошо и понятно, с примерами совершенно реального кода на Java SE. И тут уже от чтения просто не оторваться.

К своему удивлению обнаружил интересную связь lock free и распределенных алгоритмов. И там и там используется ведение логов, возникает проблема консенсуса, и вот это все. Также оказалось, что многие lock free алгоритмы нуждаются в автоматической сборке мусора или ее подобии, что внезапно делает JVM очень приятной средой для использования этих алгоритмов. Не менее кстати приходится строго определенная и одинаковая на всех платформах memory model.

Сжатие данных, изображений и звука

Дэвид Сэломон

Сжатие данных, изображений и звука

Решил освежить свои знания алгоритмов сжатия. Эта книга есть у меня в бумажном виде, когда-то давно читал ее выборочно. Решил вот перечитать от начала до конца.

Это перевод книги «Data Compression Methods» известного специалиста по алгоритмам сжатия David Salomon. В отличие от его более объемных книг «Data Compression: The Complete Reference» и «Handbook of Data Compression» (кстати, кто-нибудь знает, зачем нужды две почти одинаковые судя по оглавлению и объему книги одного автора?) данная книга скорее обзорная, не содержит упражнений, и так далее, а глава про сжатие видео так и вовсе всего лишь на пару страниц.

В целом, хорошая, годная книга. Печалит только, что бумажное издание на русском языке имеет очень маленький формат и текст, соответственно, мелковат. Зато бумага и переплет довольно неплохие — после фактических двух прочтений книга не начала разваливаться. Удивительно, но спустя 12 лет после издания книга все еще продается и стоит 1/3 от цены маленького капучино в Старбаксе.

Readings in Database Systems, Fifth Edition

Peter Bailis, Joseph M. Hellerstein, Michael Stonebraker

Readings in Database Systems, Fifth Edition

Это такая небольшая бесплатная книга, в сущности представляющая собой обзор интересных пейперов, посвященных СУБД. Эдакий линкоблог в формате PDF.

Помимо самого списка пейперов из книги можно почерпнуть немало интересного об истории развития СУБД, узнать, чем так интересны колоночные базы данных, в каком направлении по мнению авторов будет двигаться развитие СУБД и систем вроде Spark, их наблюдения об имевшем место быть хайпе вокруг MapReduce, который в настоящее время уже эффективно загнулся, о проблемах понимания и правильного использования уровней изоляциии, и к чему они привели в случае с Flexcoin, и подобного рода вещах.

Книга просто великолепная, пять из пяти. Теперь осталось всего лишь прочитать все перечисленные в ней пейперы.

FreeBSD Developers’ Handbook

Бесплатная книга, доступная на freebsd.org. В Chromium открываем в виде «вся книга одной HTML-страницой», жмем «распечатать в PDF», полученный PDF заливаем в планшет.

Начало посвящено в основном тому, чем компилируемые языки отличаются от интерпретируемых, как настроить Emacs, как пользоваться make, что такое сокеты, ну и подобным вещам. Мне лично было не очень интересно это читать. Зато очень понравилась часть III, про ядро FreeBSD и его отладку. Также в книге внезапно нашлась информация о программировании на ассемблере с использованием nasm.

В целом эту книгу я скорее одобряю, чем осуждаю.

PostgreSQL Server Programming

Hannu Krosing, Kirk Roybal, Jim Mlodgenski

PostgreSQL Server Programming

Очень советовал @postgresmen в подкасте SDCast #33, вот я и решил ознакомиться. Правда, потом я узнал, что уже есть второе издание книги, но было поздно. Впрочем, первое издание вполне себе актуально, так что второе, по-видимому, не должно сильно от него отличаться.

Из книги я узнал, например, что для PL/pgSQL есть прямо настоящий отладчик. Еще вспомнил про HOT. Когда-то давно про него знал, но уже успел забыть. Кроме того, в книге объясняется PL/Python и что он не только выглядит не как COBOL, но и позволяет прямо из PostgreSQL ходить по сети, писать в файлы, и так далее. Также рассматривается горизонтальное масштабирование с использованием PL/Proxy.

Плюс к этому рассматривается написание расширений для PostgreSQL, написание хранимых процедур на языке С и использование PGXN (местный аналог CPAN). Объясняется выполнение SQL-запросов из расширений при помощи SPI. Хуки, к сожалению, не объясняются.

Книга читается легко и интересно. Также подходит для использования в качестве настольного справочника. В общем, книжка шикарная, категорически рекомендую.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here