2−4: 構造主義
dmesgの出力を一通り読み、椅子から立ち上がると、私は学会の資料と一緒に持って来た情報カードの束、ハサミ、マスキング・テープ、そしてカメラを鞄から取り出した。空いている壁の前に立つと、十字に束ねているマスキング・テープを剥した。空いている壁に、カメラのディスプレイを見ながら、情報カードの配置を再現していった。
ホテルの部屋では、意図的に “-a” と “+A” などの対立項を作って考えてみたが、dmesgの出力に対しても同じことができるだろうか。
アームに載せてあるディスプレイを一枚こちらに向け、キーボードを取ると、先に記録したdmesgの出力を表示させた。
[ 0.000000] Linux version 4.XX.XX-200.XXXX.x86_64 (xxxxxxxxx@xxxxxxxxx.xxxx.xxxxxxxxxxxxx.org) (gcc version X.X.X XXXXXXXX (Red Hat X.X.X-X) (GCC) ) #1 SMP Fri XXX X XX:XX:XX UTC XXXX
このバージョン情報は二項の対立ではなく、いくつもの項がありうる。バージョンによっては、以下の記録とは異なる出力になるだろうし、場合によっては現われない項目もあるだろう。私は机の上から情報カードを取ると、サインペンで “OS/ver. many” と書き、壁に貼った。これは、たんにOSの違いやバージョンの違いではなく、OSとそのバージョンの来歴としても辿れるだろう。その場合、それだけでいくつかの木を構成することになる。
直接ではないとしても、端末数で言えば、unixを祖先として持つものが多く使われているだろう。ソース・コードが新たに書き下ろされているとしても、スマートフォンでよく使われている二つのOSは、unixをその遠い祖先として持つ。ファッショナブルあるいはそのほかの評価を得る計算機用OSは、現在どの程度その祖先から遠のいているかはともかく、キューブ型のワークステーションを経由して、そしてそのときに開発言語も変更されたものの、やはり祖先にunixを持つ、あるいは持っていた。
ただ、組み込み用途のものまで考慮に入れるとすると、そう簡単ではないだろう。
私は、“OS/ver. many” と書いた情報カードを剥がし、新たに “OS +unix” と書き、また “OS -unix” と書き、その二枚を壁に貼った。
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.XX.XX-200.XXXX.x86_64 root=UUID=XXXXXXXX-YYYY-ZZZZ-XXXX-YYYYYYYYYYYY ro rhgb quiet LANG=ja_JP.UTF-8
BOOT_IMAGEはOSにより、またバージョンによって、やはりいくつもの項がありうる。OSとそのバージョンの来歴を示す木の一部が、このブート・イメージとなる。ここでは “ver. +this”、 “ver. -this” と二枚の情報カードに書き、その二枚をまた壁に貼った。
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
浮動小数点のプロセッサやレジスタが存在しないCPUもあるのだろうか。昔はあったのだが。今も組み込み用途では、まだ使われているかもしれない。“FP +FP”と、 “FP -FP” と二枚の情報カードに書き、その二枚を壁に貼った。
[ 0.000000] e820: BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x0000000000057fff] usable
[ 0.000000] BIOS-e820: [mem 0x0000000000058000-0x0000000000058fff] reserved
これは単体の計算機でも、 “usable”、 “reserved”、そしてCPUの外部のデバイスが使用する場合がある。デバイスへのインタフェースは統一されている場合もあれば、そうでない場合もあるだろう。 “RAM +usable”、 “RAM -usable/+reserved/+device” と書き、二枚を壁に貼った。
[ 0.000000] ACPI: XSDT 0x00000000DE40C088 000094 (v01 XXXXX COMPUTER 02052108 XXX 00009023)
ハードウェア・レジスタやBIOSとの通信のためのテーブルが確保される。これにより、統一的なインタフェースで、様々な機器との通信手段が確保される。これまでと同様に、ただし二項対立にはこだわらず、何枚かの情報カードに記入し、それらを壁に貼った。
「終らないな」
ディスプレイに表示されている記録を眺め、私はそう呟いた。
結局のところ、これを詳細に行なうなら、この個体としての計算機を示すか、それに近いものになる。現在ではボード上に乗っているイーサネット・デバイスが持つMACアドレスほどではないにしても。
だが、それはこの計算機を示す情報がどのように取得され、あるいは設定され、あるいはデバイスが認識されているのかであるならば、計算機にとっての自分自身についての認識の最初の一歩だろう。そしてそこには、CPUを含むデバイス間の通信に用いるルールも示されている。個体としての計算機の内部で、それもOSかそれに近いところでの、言語ゲームとして、どのようなルールが使われているのか。
「そういえば、ひさしぶりだな」
ディスプレイ上の記録を眺めながら呟いた。このように起動プロセスの詳細を追うのはひさしぶりだった。怠けていたとは言えるだろうが、いい機会でもある。私は数行、また数行と記録を追いながら、情報カードを書き、そして壁に貼っていった。
隠したほうが良さそうなとろこは伏せ字にしたり削除していますが、まだ「ここも隠したほうがいいんじゃないか」という箇所があるかもしれません。お気づきの際は内緒でお教え下さい。




