プログラムをどう動かすというか、どうやって命令を発行するかという本を挙げて、プログラムをどう書くかという本もあげた。
これで、Seasarカンファレンスでの話での本の紹介は終わりなのだけど、ブログのエントリとしては、どうやって実際にプログラムが動くかを理解できるような本がないと完結しない。
ということで、プログラムを動かす環境の本を挙げることにする。
まだ読んでない本がほとんどなので、こういった分野の勉強も必要だという程度の意味でしかないけど。長いことプログラマやってれば、なんとなく知ってる分野ばっかりになってるはずだけど、系統的に勉強しなおすのもいいと思う。
このあたりの分野は「タネンバウム読んどけ」でだいたい大丈夫みたいなんだけど、いきなり読むのはつらいので、そこにたどりつくまでの本を。
コンピュータの仕組み
まず、プログラムを動かす中心となるCPUとか周辺ハードウェアの本。パイプラインとか聞いたことなければ、読んでおくべし。
- 作者: 坪山博貴
- 出版社/メーカー: ソーテック社
- 発売日: 2005/05
- メディア: 単行本
- 購入: 1人 クリック: 24回
- この商品を含むブログ (4件) を見る
インテルCPUの歴史の本なんだけど、インテルCPUの歴史というのはそのままCPUの歴史でもあるし、パソコンアーキテクチャの歴史でもある。そして、パソコンアーキテクチャは、サーバアーキテクチャにもなってきてる。
CPUだけじゃなくて、メモリとかバスの説明もあるから、パソコン全体についての概要がわかる。
具体的な製品の中身と時代背景がわかると理解しやすいしね。
内容はちょっと古くて、Pentium4くらいまでの話なんだけど、PCI Expressやらも出てきてるし、だいたいいいんじゃないだろうか。
ただ、Pentium4までのインテルCPUで使われていない技術には触れられていないので、例えばVLIWという言葉は出てこない。インテルCPUでVLIWを取り入れたのはItaniumかららしく、そこまでは触れられていない。そういうわけで、コンピュータアーキテクチャの概観とまでは行かないけど、ちゃんとした本がかなり読みやすくなるはず。
ちゃんと知りたければこのあたりを。「CPUの謎」読んだあとだと、かなり理解しやすくなると思う。
コンピュータの構成と設計~ハードウエアとソフトウエアのインタフェース 第3版 (下)
- 作者: デイビッド・A.パターソン,ジョン・L.ヘネシー,David A. Patterson,John L. Hennessy,成田光彰
- 出版社/メーカー: 日経BP社
- 発売日: 2006/03/16
- メディア: 単行本
- 購入: 12人 クリック: 115回
- この商品を含むブログ (63件) を見る
タネンバウムさんなら、範囲は少し広くなるけどこのあたりとか。
構造化コンピュータ構成 第4版―デジタルロジックからアセンブリ言語まで
- 作者: アンドリュー・S.タネンバウム,Andrew S. Tanenbaum,長尾高弘,ロングテール
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/09
- メディア: 単行本
- 購入: 1人 クリック: 22回
- この商品を含むブログ (10件) を見る
メモリの使われ方を勉強するときは、C言語のポインタの本が参考になる。
- 作者: 朝井淳
- 出版社/メーカー: 技術評論社
- 発売日: 2002/03/08
- メディア: 単行本(ソフトカバー)
- クリック: 14回
- この商品を含むブログ (16件) を見る
OS
次にOSの本。
- 作者: 沢田勉,沢田綾子,永井正武
- 出版社/メーカー: 共立出版
- 発売日: 2003/11/15
- メディア: 単行本
- クリック: 14回
- この商品を含むブログ (6件) を見る
LinuxとかWindowsとか、具体的なOSと関連付けられてるので、ほかの「オペレーティングシステム」という名のついた本より読みやすい。
Amazonの書評がひどいけど、たぶん「LinuxとWindowsを使うためのOS入門」と勘違いして買った人が、図の抽象度が高くて何がいいたいのかわからないと言ってるんだと思う。本屋でもLinux入門の横に並んでたし。確かにビッグエンディアンとリトルエンディアンは逆だとは思うけど。「まるで教科書みたい」と言われても共立出版ですから、教科書ですから。
専門書を一般書だと勘違いされて低い評価がついた悲しい例。☆3つくらいはつけてあげて。☆4つとかは言いがたいけど。サポートページがYahooグループで、ID取って参加しないと見れない & 見てもなんにもない、というのは悲しい。
まあ、概要を知るにはいいんじゃないかと。
ちゃんとした本が読みたければ、こちらで。
- 作者: Andrew S.Tanenbaum,水野忠則
- 出版社/メーカー: ピアソン・エデュケーション・ジャパン
- 発売日: 2004/12/07
- メディア: 単行本
- 購入: 4人 クリック: 99回
- この商品を含むブログ (34件) を見る
ネットワーク
ネットワークのことは知らないで済むものではない。
けれど、ネットワークとか嫌いだ。ネットワークが嫌いというか、ネットワークというのは決め事の世界で、ぼくは決め事の世界が嫌いだ。なので、TCP/IPとかプロトコルの本は読みたくない。「こう決まっています」という決まりごとの羅列だからだ。
そういうことなので、他の分野なら並んでる本を片っぱしから手にとってみるのだけど、もうシリーズを信用して、この本を読むことにした。
コンピュータネットワーク入門―TCP/IPプロトコル群とセキュリティ (Computer Science Library)
- 作者: 小口正人
- 出版社/メーカー: サイエンス社
- 発売日: 2007/05/01
- メディア: 単行本
- クリック: 11回
- この商品を含むブログ (4件) を見る
ネットワークとかプロトコルとか大好きなら、こんなの読めばいいと思う。
- 作者: A・S・タネンバウム
- 出版社/メーカー: 日経BP社
- 発売日: 2003/12/11
- メディア: 単行本
- 購入: 2人 クリック: 48回
- この商品を含むブログ (33件) を見る
他にも、TCP/IPと書いてある本はたくさんあるので、そちらで。
プロトコルを設計するなら、この本が参考になるかも。
俺流プロトコル実装入門 ~Private Implementation Protocol~
- 作者: 新里祐教,佐久川剛,遠藤正仁,今村謙之
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2007/05/22
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 38回
- この商品を含むブログ (28件) を見る
よくわからんが楽しそうな文章。書いている人そのままだと思った。
最近は、クラウドとかが流行っていて、その基礎技術としてのネットワークを知りたければ、この本がいいと思う。
- 作者: 江崎浩
- 出版社/メーカー: インプレス
- 発売日: 2007/12/22
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 56回
- この商品を含むブログ (13件) を見る
クラウドの基本は、サーバー同士が対等に接続することで、対等に接続することでどのサーバーが落ちても大丈夫という仕組みをつくりあげている。コンピュータ同士が対等に接続するということはP2Pであるということなので、クラウドの基礎技術としてP2Pの話が参考になるという話。で、P2Pの技術的な解説書といえば、この本しかないと思う。分散ハッシュテーブルにも触れられてます。
クラウド
クラウドという言葉を出したので、クラウド関連と言える本をもう少し。クラウドは今後重要だと思うので、ちょっとだけ。
クラウドの技術的な解説は、雑誌だけどこの本。UNIXマガジンのクラウド特集
UNIX MAGAZINE (ユニックス マガジン) 2009年 04月号 [雑誌]
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2009/03/18
- メディア: 雑誌
- クリック: 24回
- この商品を含むブログ (19件) を見る
技術的なところでは首藤さんの記事は必見。分散ハッシュテーブルの解説とか、基礎技術について書いてある。あとは製品やサービスの紹介なので、興味があるところを。
あと、クラウドというのは、技術的にはP2Pと仮想化だと思うのだけど、P2Pの本についてはネットワークのところで挙げた。ということで、仮想化の本。
- 作者: David Chisnall,日本仮想化技術(株),渡邉了介
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2008/08/20
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 61回
- この商品を含むブログ (26件) を見る
この本はXenの解説書というよりはXenを題材にした仮想化技術の解説書。面白そうなので買ってみたのだけど、まだ読んでない。
コンパイラとかVM
簡単なプログラミング言語なら自分で実装できるようになるべき。ということで、言語が解釈されて動くまでという本なら、とりあえずこれ。
- 作者: 今城哲二,岩沢京子,千葉雄司,布広永示
- 出版社/メーカー: オーム社
- 発売日: 2004/09/01
- メディア: 単行本
- 購入: 2人 クリック: 21回
- この商品を含むブログ (13件) を見る
コンパイラをちゃんと勉強したいなら「中田 育男」で検索して出てくる本を片っ端から読めばいいと思う。これとか。
- 作者: 中田育男
- 出版社/メーカー: 朝倉書店
- 発売日: 1999/09
- メディア: 単行本
- 購入: 3人 クリック: 42回
- この商品を含むブログ (40件) を見る
あと、この本も定番らしい。
コンパイラ―原理・技法・ツール〈1〉 (Information & Computing)
- 作者: A. V.エイホ,R.セシィ,原田賢一,J. D.ウルマン
- 出版社/メーカー: サイエンス社
- 発売日: 1990/10/01
- メディア: 単行本
- 購入: 8人 クリック: 450回
- この商品を含むブログ (47件) を見る
(2)は、もう売ってないのね。
データベースの本
最後にデータベース。
あんまりデータベース好きじゃないのだけど、この文脈だと取り上げざるを得ないので、無難なところを。
まずは基本。リレーショナルデータベースの理論的な背景が書いてある。
リレーショナルデータベース入門―データモデル・SQL・管理システム (Information&Computing)
- 作者: 増永良文
- 出版社/メーカー: サイエンス社
- 発売日: 2003/03/01
- メディア: 単行本
- 購入: 12人 クリック: 191回
- この商品を含むブログ (31件) を見る
うちにあるのは古くて、増刷じゃない薄いやつで、今、売ってるのはファイルアクセスにも触れてあるようだ。
あとはこのあたり。
- 作者: ジョーセルコ,Joe Celko,秋田昌幸
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2001/04
- メディア: 単行本
- 購入: 17人 クリック: 266回
- この商品を含むブログ (52件) を見る
リレーショナルデータベースの内部構造について知りたいときは、この本。
- 作者: ジムグレイ,アンドレアスロイター,Jim Gray,Andreas Reuter,喜連川優
- 出版社/メーカー: 日経BP社
- 発売日: 2001/10/20
- メディア: 単行本
- 購入: 7人 クリック: 145回
- この商品を含むブログ (21件) を見る
本がでかくて厚くて文字が多くて、全然よみすすまないんだけど。
数値計算
ついでに数値計算の本。微分方程式とか、連立方程式とか、そいういう計算をやりたいときに読む本。
- 作者: 鷹尾洋保
- 出版社/メーカー: 日科技連出版社
- 発売日: 1998/10/01
- メディア: 単行本
- クリック: 19回
- この商品を含むブログ (4件) を見る
サンプルはBASICだけど、コンパクトでわかりやすい。微分方程式を目標にして、そこに向けてまっしぐらという感じ。
この本で概要をしっておくと、他の本がよみやすくなる。
もう少しやりたいならこれとか。
- 作者: 峯村吉泰
- 出版社/メーカー: 森北出版株式会社
- 発売日: 2006/02/26
- メディア: 単行本
- クリック: 29回
- この商品を含むブログ (3件) を見る
ニューメリカルレシピも挙げるべきだろうか
ニューメリカルレシピ・イン・シー 日本語版―C言語による数値計算のレシピ
- 作者: William H. Press,William T. Vetterling,Saul A. Teukolsky,Brian P. Flannery,丹慶勝市,佐藤俊郎,奥村晴彦,小林誠
- 出版社/メーカー: 技術評論社
- 発売日: 1993/06/01
- メディア: 単行本
- 購入: 2人 クリック: 102回
- この商品を含むブログ (33件) を見る
いろいろ指摘されて原書は改訂されてるのだけど、日本語版は古いままなのが気になるけど。