以下の内容はhttps://nowokay.hatenablog.com/entry/20090325/1237989340より取得しました。


プログラムを動かす環境の本

プログラムをどう動かすというか、どうやって命令を発行するかという本を挙げて、プログラムをどう書くかという本もあげた。


これで、Seasarカンファレンスでの話での本の紹介は終わりなのだけど、ブログのエントリとしては、どうやって実際にプログラムが動くかを理解できるような本がないと完結しない。
ということで、プログラムを動かす環境の本を挙げることにする。
まだ読んでない本がほとんどなので、こういった分野の勉強も必要だという程度の意味でしかないけど。長いことプログラマやってれば、なんとなく知ってる分野ばっかりになってるはずだけど、系統的に勉強しなおすのもいいと思う。
このあたりの分野は「タネンバウム読んどけ」でだいたい大丈夫みたいなんだけど、いきなり読むのはつらいので、そこにたどりつくまでの本を。

コンピュータの仕組み

まず、プログラムを動かす中心となるCPUとか周辺ハードウェアの本。パイプラインとか聞いたことなければ、読んでおくべし。

インテルCPUの歴史の本なんだけど、インテルCPUの歴史というのはそのままCPUの歴史でもあるし、パソコンアーキテクチャの歴史でもある。そして、パソコンアーキテクチャは、サーバアーキテクチャにもなってきてる。
CPUだけじゃなくて、メモリとかバスの説明もあるから、パソコン全体についての概要がわかる。
具体的な製品の中身と時代背景がわかると理解しやすいしね。
内容はちょっと古くて、Pentium4くらいまでの話なんだけど、PCI Expressやらも出てきてるし、だいたいいいんじゃないだろうか。
ただ、Pentium4までのインテルCPUで使われていない技術には触れられていないので、例えばVLIWという言葉は出てこない。インテルCPUでVLIWを取り入れたのはItaniumかららしく、そこまでは触れられていない。そういうわけで、コンピュータアーキテクチャの概観とまでは行かないけど、ちゃんとした本がかなり読みやすくなるはず。


ちゃんと知りたければこのあたりを。「CPUの謎」読んだあとだと、かなり理解しやすくなると思う。


タネンバウムさんなら、範囲は少し広くなるけどこのあたりとか。


メモリの使われ方を勉強するときは、C言語のポインタの本が参考になる。

OS

次にOSの本。

LinuxとかWindowsとか、具体的なOSと関連付けられてるので、ほかの「オペレーティングシステム」という名のついた本より読みやすい。
Amazonの書評がひどいけど、たぶん「LinuxWindowsを使うためのOS入門」と勘違いして買った人が、図の抽象度が高くて何がいいたいのかわからないと言ってるんだと思う。本屋でもLinux入門の横に並んでたし。確かにビッグエンディアンとリトルエンディアンは逆だとは思うけど。「まるで教科書みたい」と言われても共立出版ですから、教科書ですから。
専門書を一般書だと勘違いされて低い評価がついた悲しい例。☆3つくらいはつけてあげて。☆4つとかは言いがたいけど。サポートページがYahooグループで、ID取って参加しないと見れない & 見てもなんにもない、というのは悲しい。
まあ、概要を知るにはいいんじゃないかと。


ちゃんとした本が読みたければ、こちらで。

ネットワーク

ネットワークのことは知らないで済むものではない。
けれど、ネットワークとか嫌いだ。ネットワークが嫌いというか、ネットワークというのは決め事の世界で、ぼくは決め事の世界が嫌いだ。なので、TCP/IPとかプロトコルの本は読みたくない。「こう決まっています」という決まりごとの羅列だからだ。
そういうことなので、他の分野なら並んでる本を片っぱしから手にとってみるのだけど、もうシリーズを信用して、この本を読むことにした。


ネットワークとかプロトコルとか大好きなら、こんなの読めばいいと思う。

他にも、TCP/IPと書いてある本はたくさんあるので、そちらで。


プロトコルを設計するなら、この本が参考になるかも。

よくわからんが楽しそうな文章。書いている人そのままだと思った。


最近は、クラウドとかが流行っていて、その基礎技術としてのネットワークを知りたければ、この本がいいと思う。

クラウドの基本は、サーバー同士が対等に接続することで、対等に接続することでどのサーバーが落ちても大丈夫という仕組みをつくりあげている。コンピュータ同士が対等に接続するということはP2Pであるということなので、クラウドの基礎技術としてP2Pの話が参考になるという話。で、P2Pの技術的な解説書といえば、この本しかないと思う。分散ハッシュテーブルにも触れられてます。

クラウド

クラウドという言葉を出したので、クラウド関連と言える本をもう少し。クラウドは今後重要だと思うので、ちょっとだけ。
クラウドの技術的な解説は、雑誌だけどこの本。UNIXマガジンのクラウド特集

技術的なところでは首藤さんの記事は必見。分散ハッシュテーブルの解説とか、基礎技術について書いてある。あとは製品やサービスの紹介なので、興味があるところを。


あと、クラウドというのは、技術的にはP2Pと仮想化だと思うのだけど、P2Pの本についてはネットワークのところで挙げた。ということで、仮想化の本。

この本はXenの解説書というよりはXenを題材にした仮想化技術の解説書。面白そうなので買ってみたのだけど、まだ読んでない。

コンパイラとかVM

簡単なプログラミング言語なら自分で実装できるようになるべき。ということで、言語が解釈されて動くまでという本なら、とりあえずこれ。


コンパイラをちゃんと勉強したいなら「中田 育男」で検索して出てくる本を片っ端から読めばいいと思う。これとか。


あと、この本も定番らしい。

(2)は、もう売ってないのね。

データベースの本

最後にデータベース。
あんまりデータベース好きじゃないのだけど、この文脈だと取り上げざるを得ないので、無難なところを。


まずは基本。リレーショナルデータベースの理論的な背景が書いてある。

うちにあるのは古くて、増刷じゃない薄いやつで、今、売ってるのはファイルアクセスにも触れてあるようだ。


あとはこのあたり。


リレーショナルデータベースの内部構造について知りたいときは、この本。

本がでかくて厚くて文字が多くて、全然よみすすまないんだけど。

数値計算

ついでに数値計算の本。微分方程式とか、連立方程式とか、そいういう計算をやりたいときに読む本。

サンプルはBASICだけど、コンパクトでわかりやすい。微分方程式を目標にして、そこに向けてまっしぐらという感じ。
この本で概要をしっておくと、他の本がよみやすくなる。


もう少しやりたいならこれとか。


ニューメリカルレシピも挙げるべきだろうか

いろいろ指摘されて原書は改訂されてるのだけど、日本語版は古いままなのが気になるけど。




以上の内容はhttps://nowokay.hatenablog.com/entry/20090325/1237989340より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14