OS自作入門

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

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

最近、OS自作入門(http://wiki.osask.jp/?HariboteOS)を読んでいます。購入したのは3年ほど前だったのですが、その時は8日目辺りで挫折していて、いつか再チャレンジしようと思っていて、今回は何とか読破できそうです。
本書は実際にソースコードと解説があり、エミュレーターで動作確認も出来るため、うちの業界の本にしては非常に具体的だと思います。ただし、私自身はアセンブラとかOS概論的なものが頼りないレベルなので、近所の図書館においてある範囲で参考になりそうな本も読んでみました。今回はそちらの読書記録です。

エミュレータのしくみ http://www.kohgakusha.co.jp/books/detail/978-4-7775-1100-6

エミュレータのしくみについて解説している、おそらく珍しい本です。パソコン上で動くファミコンエミュレーターなどのようにハードウェアエミュレーションに関する解説書であるため、CPUやメモリ、グラフィックス、サウンドなどをエミュレーションするための考え方が記述されています。
エミュレーションするための考え方を説明する上で、それらのハードウェアに関する解説があるため、結構参考になりました。ただ、解説しようとする内容に対して紙面が少なかった印象があります。部分的に解説がなかったり、浅めのところもあったのが残念でした。概念レベルで押さえるには十分な内容ではありましたが。
ゲーム機のエミュレーションにおいては実機が並列で処理するものをエミュレーターの場合は時分割で処理するため、タイミングの同期が困難である点や、サウンドに関してはハードレベルで音源が異なることや、変換するコストを考慮して、エミュレーターごとに異なるというのは面白いと思いました。

機械のコトバ http://www.algolab.co.jp/~lum/pcnyumon/index.html

機械、つまりコンピュータの仕組みについて解説している本です。タイトルにもあるようにコトバつまり機械語について解説しているにも関わらず、語り口が軽い感じの珍しい本でした。実際に機械語→疑似アセンブラPascalで迷路のプログラムとかを解説しているため具体的です。また、その中で機械語から低級言語、高級言語に発展していった歴史や背景を記述しており、私としてはその辺りが特に楽しめました。
アセンブラでの開発経験がない人で、本書の内容を全てさらりと読み込める人は、まぁ天才というか、ちょっとおかしいかと思います。ちなみにアセンブラでの開発経験がない私は、細かい部分は斜め読みで、概念的なとこだけ読むようにしました。そういう感じで読めばうちの業界の初心者にとっても良書だと思います。
あと、本書に登場する疑似アセンブラエミュレータを筆者のサイトでサンプルコードつきで公開しているので、実機で試せるのは嬉しいかもしれません。

オペレーティングシステム http://www.morikita.co.jp/shoshi/ISBN978-4-627-81011-2.html

名古屋工業大学のテキストのようです。この手の硬い感じの本はまず買わないため、久々に堅苦しい感じの文章を読みました。細かい計算式のところとかは読み飛ばしましたが、こういう学術的な本の価値も再認識した気がします。排他制御の考え方とか、ページングやスワップの詳細な仕組みは実務でも参考になると思います。また、LRUのアルゴリズムなどはOracleとかを使っていれば出てくる用語ですが、そもそもOSレベルで出てくる基本的な用語であるというのはショックを受けました。
私自身は初等教育学科の出で、情報工学そのものは大学で学んでいないため、社会人になってから勉強しています。うちの業界の本ならば今までに100冊以上読んでいると思いますし、企業向けのWebアプリケーションの開発標準とかフレームワーク開発をやったりしています。けれども、情報工学そのものについて体系的に学んでいる範囲が根本的に足りていないのではないのかなぁと思ってしまいました。まぁ、実務でプログラムが書けるということと情報工学を修めていることの相関関係はそれほどないと思いますが。ただ、自分の幅という観点で、今後も学んでいく必要を感じました。