Wataru's review by NISHIDA Wataru

Last updated 2002-05-19

次から次へと機関銃のように出版されるコンピューター書籍。本屋に行くと毎週のように新刊書が平積みにされています。しかし、私の経験からして値段に見合うだけの内容を兼ね備えた書籍は、この中のごくごくわずかです。数千円も出して「外れた」時のショックは大きく、その度に「二度と衝動買いはせんぞ!」と誓うのですが、興味を惹くタイトルを見つけると思わずカウンターに立っている私・・。

自分の選球眼が悪い訳ですから自業自得と言えますが、中には雑誌に掲載されている書評を参考にして、購入する方もいらっしゃるでしょう。しかし、私はここ最近のコンピューター雑誌で「厳しい書評」を目にした記憶がありません。どれもこれもが、極めて日本人的な「当たり障りのない」解説。目次を箇条書きにし、最後の一文はまるで決まり文句のように「○○○を求めている読者には役立つだろう」。こんな書評であれば、中学生でも書けます。

で、嫌われ者覚悟で書評を始めることにしました。私が「これは素晴らしい!」と判断した書籍はお薦めの書で紹介しています。このコーナーでは「?」と感じた書籍について、どこに問題があるのか、私であればどのように修正するか、などを具体的に指摘しながら解説します。

組込型 Linux 導入・開発ガイド by 藤広 哲也編著、すばる舎(初版2002) 2002/02/15

非常にタイムリーな出版で、早速手にした方も多いでしょう。組み込み Linux に関する書籍としては、国内一番乗りではないでしょうか?

さてその内容ですが、編者による概論の後に、Embedix/Hard Hat Linux/A&A Linux/TimeSys Linux/μClinux の紹介が続きます。この紹介は、国内販売を担当している会社の方(A&A Linux だけは国産)が書かれているのですが、はっきり言って各社のホームページを読んだ方が最新の情報が得られて良さそうです。どれも販促用資料を練り合わせた程度のものであり、執筆した本人が他社と比べて自社製品のどこにメリット・デメリットがあるのか、正確に把握できていないのでしょう。

「自分の言葉で」解説しているように見受けられたのは、唯一μClinux の章だけ。

具体的に見てみましょう。トップバッターの Lineo ですが、そもそも Embedix の概念そのものが明快に説明できていません。やたらと略語が多く、Lineo がどこに focusing しているのか、全く分かりません。図2−3,2−4では glibc とμClibc が共存していますが、これは米国本社のミスなのか、それとも日本リネオの社員のミスなのか。いずれにせよ、執筆者はライブラリーの意味が分かっていないように思われます。私が執筆するのであれば、このような抽象的解説にページを割くよりは、具体的に glibc / μClibc のサイズを native な状態、およびライブラリー最適化ツール LIPO を使い縮小した状態で表にして提示するでしょう。LIPO は Embedix のセールスポイントであるにもかかわらず、フルスペルの説明もないとは・・。さらに Embedix SDK による開発手順を示しているのは良いのですが、この題材に選ばれたのは何とただの「hello world」というお粗末さ。

「一体、このプログラミングとビルド過程のどこに組み込みらしさがあるのか?これではデスクトップ開発と全く変わらないではないか。」

他社の紹介も総じて抽象的であり、「なるほどこのシステムを用いれば組み込み開発はグンと楽になる」と思わせるような記述は皆無です。「え〜い、もうこんな本はゴミ箱じゃ」と、捨てかけたところに登場したのが最終第7章の「Hard Hat Linux を使ったネットワーク端末の開発」。実はこれが一番読み物として面白いのです!

Celeron 566MHz, 64MB RAM, 96MB Disk On Module on IDE というスペックのボードに Hard Hat Linux CDK 2.0 を用いて、情報処理端末機能を実装するというものです。で、涙ぐましい努力をしながら 300MB もある Red Hat Linux 6.2 システムを 50MB に削りこんでいく過程が紹介されます。これでは、適当なディストリビューションを選んでスクラッチで size reduction する作業と何ら変わりありません。「Hard Hat Linux って、作業がハードって意味なのね」という事になりますが、どうも第3章を読むと第7章で使われたものは journeyman edition、つまりお試し版のようです。別途用意されている Professional edition を購入すれば、先の面倒なサイズ圧縮作業は Target Configuration Tool 、さらには Library Optimizer を用いることで、簡略化できるようです。ここで一言、

「なんで Professional 版を使った開発記を紹介しないの?」

読者は2800円もの対価を支払っているのですから、せめてもの800円相当の情報をフィードバックして欲しいものです。

実習 Linux カーネル (Kernel Projects for Linux) by Gary Nutt 翻訳 浜田 真理、ピアソン・エデュケーション社(初版2001) 2002/02/1

最近発売されたばかりの書籍ですが、タイトルを見ただけで指がムズムズしている人達も多いことでしょう。私も書店で見つけるなり、パブロフの犬のごとく小脇に抱えていました(ちゃんと精算しています)。

原書はコロラド大学教授 Gary Nutt 氏が2000年に Addison Wesley から出版した Kernel Projects for Linux です。原題は日本人の私達からすると抽象的でピンと来ません。このためか、邦訳は「実習 Linux カーネル:理論と実習 カーネルを効率的に理解するための実習書」と大変長いタイトルになっています。実はこの Kernel projects という言葉に本書のエッセンスがうまい具合に表現されています。

普通の英和辞典で project を引くと、学習課題・研究課題などとありますが、何かしっくりきません。こんな時は迷わず英英辞典を引く習慣を身につけましょう(以下、OXFORD dictionary より)。

project SCHOOL/COLLEGE WORK: a piece of work involving careful study of a subject over a period of time, done by school of college students.

なるほど、大学の学生に与えられる一定期間内の研究課題。日本の学生ですと与えられた課題をダラダラとこなす傾向がありますが、「それではいかん!決められた時間の中で必ずやりとげなさい」という意味が over a period of time に込められています。日本のバカチョン辞書は、ものの見事にこの大事な点を見落とす、もしくは意図的に削除していることが分かります。学校では教えてくれませんが、英和辞典というのはこれ程いい加減な代物です。さて、私は careful というさりげない形容詞が気になりました。カーネル読破と同じく、気になったことは納得が行くまで調べてみましょう。

careful : giving a lot of attention to details

なるほど!与えられた課題は細部に至るまで丹念に調べよ、という訳です。「注意深く」で済ませていたら、このニュアンスを見逃すところでした。これで原題の意味するところが、大体分かりました。内容も考慮すると「Linux カーネルを教材に用いたOS講義用課題集」というタイトルが適当でしょうか。でも、これでは売れませんよね。

さて、その内容ですが本書は「コンピューターOS」講義の副読本として書き下ろされています。もっと正確に言えば Nutt 教授の講義用副読本です。この教科書を使って講義が出来る人は、Gary Nutt 教授をおいて他にはいないでしょう(理由は後述)。

「どうして個人用の講義用副読本が世界中で出版されるの?」

これが私の本書に対する書評です。内部は2部に分かれており、第一部で Linux カーネルの概要が示されています。しかし、この概要たるや全部で52ページ。はっきり言って、「超はしょり過ぎ」。初学者は何が書いてあるか分からず、実力がある読者にはものたりない内容です。細かいところは実際の講義で説明するということなのでしょうか?

「この本だけを頼りに理論を学ぼうという読者はどうすればよいのじゃ!」

第二部から本題の kernel projects が始まり、全部で12種類の実習課題が示されています。前書きがふるっているのですが、「教育現場で適切な実習課題の選定に悩んでいる指導教官に利活用してもらいたい」とあります。しかし・・

「そもそも実習課題すら思いつかないほど poor な指導教官にOSの講義を担当させてよいのか?」

Linux カーネルを題材として具体的な課題を与えるというアプローチは良いと思います。私も講義の機会が与えられるようなことがあれば、 Nutt 教授と同じようなスタイルで臨むでしょう。中でもシェルプログラム・カーネルモジュールで示されている課題は、実践的で良いテーマです。しかし、コーディング前に示される解説内容は余りにも貧弱であり、この本を読んだだけで課題を完成させることができる学生は果たして存在するのでしょうか?仮に存在したとしても、そのような能力のある学生が本書を手にすることはないでしょう。

そして、最大の問題は課題の模範解答がひとつも提示されていない点です。コロラド大学で授業を受ければ、模範ソースリストを拝めるということでしょうか。それにしても、仮想メモリやスケジューラの課題は極めて高度な内容です。失礼ながら私は問いたい、

「著者のあなた自身にこの課題をコーディングできる能力があるのか?」

以上より、コロンビア大学で Nutt 教授の講義を受けることができる日本人にはお勧めできますが、そうではない大多数の読者にとって2800円の出費は無駄遣いに終わりそうです。

本書で評価できる点は課題以外にもう一点あります。日本語訳の出来がなかなか良いのです。夫婦で翻訳を担当されたようですが、日本語訳が良く練られており、丁寧な仕事をされています。しかも原著はカーネル2.2に基づいているため、2.4での変更点について、3ページにわたる訳注が追加されています。久しぶりに気持ちの良い日本語訳を読むことができました。お二方の次回の翻訳に期待したいと思います。


Your SysOp is Wataru Nishida , M.D., Ph.D.