/home/tnishinaga/TechMEMO

日々行ったこと、面白かったことを書き留めます。

2017年版おすすめ本のご紹介

蔵書の写真をTwitterにあげたところ思いの他反響があったので,おすすめの書籍を紹介したいと思います.

これから紹介する本は,私が今まで一部でも良いので読んだ本の内,所有しているもの,または記憶に残っているものになります.

UNIX, Linux系学習用

はじめてUNIXで仕事する人が読む本

ログイン方法からsed, grepなどの使い方,ネットワークやセキュリティの説明など,UNIXLinux環境での基本的な作業のやり方や,そのために必要な基本的な知識が網羅された本です.

この本に書かれている内容を覚えれば,基本的なLinuxのサーバー管理等で困ることは無いと思います.

コンピュータ・アーキテクチャ(低レイヤー)

パターソン&ヘネシー コンピュータの構成と設計(上・下)

コンピュータを理解する上で必要な2進数の話から,コンピュータを構成する要素や高速化の手法など,コンピュータ・アーキテクチャに関する知識が網羅された本です.

ただし,この本は全てが少し深めに書かれている上に1ページの文字数も多いので,読んでいて結構疲れます.

読んでいて難しいな,読むのが辛いなと思ったらもっと簡単なコンピュータアーキテクチャについて書かれた本を読んだり,マイコン開発をするなどして知識をつけてから読んだほうが良いかもしれません.

リンカ・ローダ実践開発テクニック

オブジェクト同士を結合し,実行可能なプログラムを作るリンカについて書かれた本です.

OS上の実行バイナリ(ELF)の構造やリンカスクリプトについて日本語で知りたい場合はまずこの本を読むと良いと思います.

著者の坂井さんの書かれた本では,対象の仕組みを説明するだけでなく,実際にそれを作ってみて理解を深めていくというということをよくされており,この本も途中から実際にリンカやローダーを自作することを行っていきます.

なので,仕組みを知りたいだけの方は前半のみ,手を動かして深く知りたい方は後半も含め読むと良い本だと思います.

ARMで学ぶアセンブリ言語入門

ARM(AARCH32)アセンブリコードの書き方,QEMU上での実行方法,基本的なARMアセンブリ命令の解説がわかりやすく書かれている本です.

ARMアセンブリコードを書く際の辞書として手元に1冊用意しておきたいです.

Raspberry Piで学ぶ ARM デバイスドライバープログラミング

Raspberry Pi上でLinuxデバイスドライバを書き,自作ハードウエアを制御する本です.

実はほとんど読めていないので詳細は書けませんが,Linuxデバイスドライバ作成の参考になる本だと思います.

Hacker’s Delight

ビットカウント演算やa<x<bの比較を1つの条件式で行う方法など,様々な黒魔術の書かれた本です.

黒魔術を使ってでもコードを高速化したい場合,例えばマイコン向けの高速なアセンブリコードを書く場合などを書く際に,辞書として利用するのが良いと思います.

目次は以下で公開されています.

http://www.hackersdelight.org/hacker2TOC.pdf

30日でできる!OS自作入門

x86(BIOS)環境上で動作するOSを作っていく本です.

比較的早いうちから画面描画を行うので作っていて楽しいですし,C言語のプログラムの書き方など必要な知識も一緒に教えてくれるので大変親切で読みやすいです.

スーパコンピュータ関係

絵でわかるスーパーコンピュータ

そもそもスパコンってなに? パソコンと何が違うの? どういうことができる? あると私たちにとってどのような良いことがあるの? といったことが絵を交えてわかりやすく書かれた本です.

大まかにスパコンについて知りたい方におすすめです.

スパコンプログラミング入門

スパコンプログラミングとありますが,正確には大規模並列計算を行うプログラムの書き方やアルゴリズムなどが書かれた本です.

MPIを使って通信を行う並列計算プログラミング方法も学ぶことができます.

ネットワーク関連

ルーター自作で学ぶ パケットの仕組み

その名の通り,Linux上でRawソケットを用いてイーサネットのパケットを受け取り,ルーティング等を行うルーターC言語で自作していく本です.

ルーターがどのようなことを行っているか,パケットの構造はどのようになっているのかなどを手を動かしながら学ぶことができます.

マスタリングTCP/IPシリーズ

ネットワークに関係する規格などが網羅的に書かれた本です.

よく注目を浴びる部分だけでなく関係する多くのことが細かく解説されて居る上,対応するRFCの番号なども示されているため深く知りたい場合はこの番号を頼りに調べられるようになっています.

一方,パターソン&ヘネシーと同様に内容が濃いので読んでいて疲れます.別の書籍を読んで全体を俯瞰して見た後,詳しく知りたい部分についてこの本を使って調べるのも良いかもしれません.

プログラミング関係

Beautiful code

プログラムをきれいに書いていくためのテクニックが書かれた本です.

自他共に読みやすいコードを書くため,一度は読むべき本と思います.

作文技術関係

数学文章作法(基本編・推敲編)

どのようにすれば自分の書きたいことを理論的に筋道立てて書くことができるかについて書かれた本です.

人に伝える文章を書く必要のある方におすすめの本です.

おわり

以上です. 学習の手助けになれば幸いです.