diary)この広告は、90日以上更新していないブログに表示しています。V6で学ぶカーネルのしくみ〜」という本を2013年1月8日に技術評論社から出版します。見るこのエントリでは、その本の紹介を行います。興味を持ったならば、書店などで手に取っていただけると幸いです。2013/08/17PDP11エミュレータをJavaScriptで実装しました。V6の動作確認を行うことができます。デバッグ機能もありますので、読者の方はコードリーディングのお供に使ってみてください。V6がどのようなOSか知りたいというかたも試してみてください。V6のカーネルソースコードの解説本です。V6のカーネルソースコードリーディングメモが基になっています。http://d.hatena.ne.jp/takahirox/20120212/1329049014このエントリを見ていただければ、本の中で書かれている内容が、だいたいどのようなものか想像がつくのではないかと思います。このエントリが面白い、もしくは、面白そうだと思った人にはきっと本書も気に入っていただけるでしょう。全てを一から作り直しました。V6は古いOSではありますが、カーネルのコード量が少なく、ロジックがシンプルなため、OS初学者の人が初めて読むカーネルのソースコードとしてはうってつけだと思います。カーネルはコンピュータシステムの中核を成すものだと言え、カーネルを理解すれば、コンピュータに対する造詣が深まり、技術力の意欲向上にもつながるでしょう。V6のカーネルを読んでから、コンピュータに対する理解が深まり、世界が広がった感覚を味わっています。そのような感覚をぜひ読者の皆様にも味わっていただきたく、本書を執筆しました。UNIX(通称Lions本)を思い浮かべた人も多いかと思います。見る本書とLions本の一番の違いは、「本書の方がわかりやすい」ことだと思っています。V6の解説書として有名ですが、その敷居の高さも有名だと思います。私もLions本にはかなり苦しめられました。本書には、「Lions本の内容がこんな感じだったら、もっと読みやすかったんだろうな」というアイデアをたくさん詰めました。具体的には、以下の工夫を行っています。図を多くLions本はほとんどが文章で書かれており、図や表が少なく、処理の内容のイメージが掴みにくかったです。そこで本書では、図や表をできるだけ多くして、直感的に理解ができるように心がけました。本書の各章は、以下の流れになるようにしました。関数がどのような処理を行っているかの解説コードレベルの解説このように、抽象度が高い方から低い方へと流れるように解説を行い、読者の理解が捗るようにしました。流れるような章構成カーネルの中でも、特に興味を持たれそうな部分をできるだけ前半の章に置いています。ある章を読むときに、必要な情報がそれ以前の章に載っているように心がけました。Lions本の方が優れている点もちろん、Lions本の方が優れている点もあります。本書では、ページ数が限られているため、カーネルの通常動作に焦点を絞って解説しています。そのため、エラーが起きた時の動作の解説や、V6の設計では問題が起こりうるであろうケースの考察などについては弱いです。V6カーネルで使用されているCやアセンブラの仕様については「仕様書を参考のこと」で片づけています。Lions本では、これらに対する言及も含まれています。本書とLions本はそれぞれ強み弱みがあるので、本書を読むときに、時折Lions本も参照していただくと、理解が早くなるのではないかと思います。必要なスキルは?本書はカーネルのソースコードの解説書ですので、事前に入門書などでOSの基礎知識を学んでおくことが望ましいです。本書に限らず、ソースコードの解説書は、知識ゼロでいきなり読むものではないと思っています。カーネルのほとんどがCで書かれているので、Cの知識を持っていることも望ましいです。特別な書き方をしているわけではないので、基礎レベルのCの知識で充分読むことができると思います(私がそうでした)。K&Rと呼ばれるもので、現在のCとは仕様が異なる部分もあります。Cをマスターしている人ほど、読みづらいかもしれません。一部は(PDP-11用の)アセンブリ言語で書かれていますが、それらのうち特に重要なものしか本書では扱っていません。コード量が少ないので、アセンブリコードなんで読んだことないという人でもなんとかなると思います(私がそうでした)。その他その他2終わりにというわけで、告知でした。ご興味があれば是非読んでみてください。Physics月別アーカイブはてなブログをはじめよう!takahiroxさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。