/ «2003-09-25 (Thu) ^ 2003-09-27 (Sat)» ?
   西田 亙の本:GNU 開発ツール -- hello.c から a.out が誕生するまで --

Categories Books | Hard | Hardware | Linux | MCU | Misc | Publish | Radio | Repository | Thoughts | Time | UNIX | Writing | プロフィール


2003-09-26 (Fri)

[Writing] LTBL Project

稲刈り

今日は、久しぶりの出勤。先週まで、たわわに実り頭を垂れていた稲穂達が、いない。どこにもいない・・。日頃、「いやぁ、今日も緑がきれいやねぇ」とか、「ほほぅ、お日さまの光一杯浴びて、色っぽい黄色になってきましたなぁ・・」などと、完璧に感情移入していたものだから、なんだか寂しい。仲の良い友達が転校してしまった気分である。

農家の皆さんは、私が家でゴロゴロしている間に、稲刈りに励んでおられたらしい、ご苦労様です。新米は、さぞかしおいしいことだろう。考えてみれば、毎日出勤途中に田んぼの真ん中を走りながら、季節感を満喫できるというのも、贅沢な話だ。

LTBL project

休みの間に新たなるプロジェクトを思いつく。名付けて、Let There Be Light、すなわち「光あれ」プロジェクト。Torvalds 氏が辿った軌跡を、連載を通じて再現しようというものだ。世の中に Linux カーネルの解説は多いが、読後に「光」を見た読者は、ほとんどいないだろう。それもそのはず、Torvalds 氏が体験した感覚を、自らの手・目・心で感じるためには、彼と同程度の深いハードウェア知識が必要になるからである。また、Linux-0.01 を再現するためには、併せて GNU 開発ツールを使いこなせるだけの力量も求められる。

両者を独学で学ぶことは極めて難しいが、幸い GCC プログラミング工房を通じて、後者の問題はほぼ解決しつつある。残された課題は、PC/AT の周辺 I/O そして i386 プロテクトモードを「しゃぶり尽くせるかどうか」にかかっていると言えるが、これは現在の第3部を通じて、一つずつ解決できるだろう。実際、キーボード回りと VGA に関しては、これまでの連載の内容で十分 Linux-0.01 相当のキーボードドライバー、コンソールドライバーを作成することは可能だ(割り込み処理の解説が残っているが)。さらに、11月号、12月号では、本格的な VGA register programming の解説にまで及ぶので、この時点で10年前の Torvalds 氏を読者の皆さんは追い抜いてしまうことになる。2004年の始めには、いよいよ RS-232C (正確には 8050 互換チップの制御)プログラミングが登場し、Torvalds 氏が最初に取り組んだターミナルエミュレーターの自作に挑む。という調子で行くと、来年の今頃には「光あれ」の境地まで達することができるのか?達したい、いや達するのだ!

まずは下準備として、Linux-0.01 の Bootstrap loader およびプロテクトモード移行部分までをフルスクラッチで書き直す作業から始めよう。Linux, *BSD にかかわらず、システム起動部分のコーディング技術は稚拙である。なぜなら、開発ツールの潜在能力を十二分に発揮できていないからだ。特に .code16gcc を使いこなせていないのは痛い。.code16gcc を使えば、可読性の低いアセンブリソースは、ブートセクターのごく一部だけで済むはずなのだ。個人的には、1ページ以上のアセンブリソースは御免被りたい。年を取ると、解読のための集中力が続かないのである。文章もソースも、単純明快が一番。

[Books] 文字コード超研究

先日、紀伊国屋で面白い本を見つけた。深沢千尋氏の「文字コード超研究」という分厚い本だ。600ページ以上にもおよぶ力作であるにもかかわらず、値段は2980円と内容の割には安い。恐らく、財布の中身に秋風が吹いている学生さんや、新入社員の人達に配慮した値段設定なのだろう。初版は今年の8月2日であるから、まだ出版されて間もないようだ。

で、私はそのタイトルから文字コードに関する集大成本を想像して、手に取ったのだが、内容はさにあらず。なんと、「文字コードをお題にしたプログラミング解説本」だったのだ!くぅ〜〜〜〜、また負けた。完璧に先を越された。実は、私は以前から「文字コードというのは、初心者のプログラミングテーマとして最高じゃん」と考えていた。いつか機会があれば、書いてみたいものだと思っていたところに、この本に遭遇してしまった訳だ。

でも、いいのである。この本の出来は大層良い。まえがきに書かれている、本書の4つの基本理念「原理主義、実験主義、Perl 主義、実際主義」というのが、いい。内容も正確であり、良く調べ上げられている。そして、何より文体がいい、楽しい、幸せになれるかも。

細かいところは、また時間がある時に拝読させて頂くとして、私が購入を決めたのは253ページの図を見たから。そこには、「KAIJUU ARAWARU (怪獣現る)」という打電文が、紙テープとして出力されている様子が分かりやすい絵で示されている。スプロケット穴、偶数パリティ、0x7F (DEL) の意味。白状すると、私は本屋でこの絵を立ち読みしたとき、不覚にも目頭を熱くしてしまいました。そのまま足早にカウンターに立ち寄ったことは、言うまでもありません。

分野を問わず「原理」というのは大切である。原理主義者、深沢氏の次回作に大いに期待しております。

[Books] GPS MANIAX

本日とあるコーナーを歩いていると「GPS MANIAXX」という怪しげなタイトルの本を発見。サブタイトルに「パソコン/PDA ユーザーのための・・」とさらに危ない誘い文句が添えられている。この発行人、分かっとるなぁ・・と思いつつ、手に取る。パラパラと5章までをめくる。どうっちゅうことはないのぅ。が、6章まで来て目が点になる。

GPS コンシューマーガイドと名打たれたこの章は、世界中のハンディ GPS レシーバーのカタログとなっていたのである。ここで初めて、GARMIN 社の eTrex シリーズなるものを知る。

ほほぅ〜〜、安いのは2万円から手に入るですか。なんと、入出力信号は RS-232C と来ましたか、マジっすかぁ?!こりゃターミナルエミュレーターが動いたら、そのまま GPS reader の出来上がりじゃないですか!

もう少しページを進めると、次は「GPS コア」という、とってもとっても危ないページが登場する。

ゲゲッ、こいつは先日勉強した 1PPS (UTC に同期した1秒パルス)も出力できるんすか?!思わずその場で、1pps と名付けたデーモンをコーディングしている自分の姿を夢想するのであった。

本書が今手元にはあるのは、言うまでもない。で、早速調べてみた。最安値帯でシンプルなトカゲ印の Geko 201がよさげだが、なんと amazon.com で扱っているんですな、これが。価格は、約120ドル。いんや、ちょっと待て。日本でも、17700円だよ、お兄さん。為替と送料を考えると、日本かしらん。でも、301も魅力的よねぇ。

まぁ、しかしだ。問題は、入出力データフォーマットが公開されているかどうかだな。これがなけりゃ、ただの物欲箱と化すだけだ。

と、かろうじて理性を保ちながら、GRAMIN 社のサイトを探す。応答が遅いが、簡単にブツが見つかってしまった。やるな、GARMIN、ここまでは合格じゃ。どの程度のドキュメントが書けるのか、おじさんがチェックしてやろう、どれどれ。

まず最初に simple text output を見る。あかん、頭クラクラしてきた。タイムスタンプは UTC format と来たよ。ダメだ、やられた。

いや、まだ生ぬるい。これはただの「出力」フォーマットだよ。問題はホスト側との communication protocol がきちんと公開されているかどうかだ。と、ほとんど死にかけの理性の声に促されて、Garmin Communication Protocol をチェック。

正直予想はしていた。タイトルを見た時点で、私の秘孔は突かれていたのだ・・。

GARMIN 社、恐るべし。もちろん、このようなケースが全てとは言わないが、欧米の優れた会社は、まず間違いなくドキュメントも一流だ。これに反して、日本は商品は一流であっても、ドキュメントは最悪のケースが多い、いやほとんどだろうか。具体例はいつかご紹介しよう。

とか良い子ぶって、GPS core どうすんのよ!>我