グラフィカル革命 — 光の合図から画面の光へ

前講「高級言語、低級言語」は、機械語からアセンブリ、高級言語、コンパイラへと抽象化の階段を 上りきったところで終わった。その階段の先にあるのは、コードが動く機械と人間が出会う場所 ——画面である。これがシリーズ全18講の、最後の講義になる。 コンピュータは長いあいだ、人間に歩み寄る努力をしてこなかった。プログラムとデータをまとめて 飲み込み、結果を紙に吐き出すだけの機械が、どうやって画面とマウスを手に入れ、人が指し示せる 道具になっていったのか。その歩み寄りの歴史をたどり、最後にもう一度、シリーズの出発点に 立ち返る。全4セクション・演習19問。回答はブラウザに保存されるので、途中でやめても続きから 再開できる。

進捗 0 / 19 問(正解 0 問)

1. Memexと対話型コンピューティングの夜明け

前講は、機械語からアセンブリ、高級言語、コンパイラへと抽象化の階段を上りきったところで終わった。この最終講では視点を変える——階段を上りきった先にあるのは、コードが動く機械と人間が出会う場所、すなわち画面である。1945年、ヴァネヴァー・ブッシュは雑誌記事のなかで、デスクの中に本や記事や写真をしまい、人間の連想に従って情報同士を結びつけられる「メメックス」という装置を構想した。装置そのものは実現しなかったが、「情報をどう扱いやすくするか」という問いは残った。初期のコンピュータはバッチ処理が標準で、人間との間に即座のやり取りはない。テレタイプライタによる1行ずつの往復、そして表計算ソフトVisiCalcという転機を通じて、コンピュータが少しずつ人間に歩み寄っていく過程を辿る。

1945年、ヴァネヴァー・ブッシュは雑誌記事「As We May Think」のなかで、 ある架空の装置を構想した。デスクの中に本や記事や写真をしまい込み、人間の連想に従って情報同士を 結びつけていける机——メメックスである。装置そのものは実現しなかった。だが 「情報をどう扱いやすくするか」という問いだけは、この後の数十年を通して残り続けることになる。

当時のコンピュータは、その問いからは遠いところにいた。標準的な使い方は バッチ処理である。プログラムとデータをまとめて読み込ませ、しばらく待ち、 結果を紙に印刷して受け取る。ユーザーとコンピュータのあいだに、即座のやり取りは存在しない。 コンピュータが小型化・低価格化していくにつれて、その計算能力の使い道の1つが、人とコンピュータが 出会う点——ユーザーインタフェースの改善に向けられていく。

最初の対話型(インタラクティブ)なコンピュータは、テレタイプライタを通じて 現れた。ユーザーが1行タイプすると、コンピュータが1行以上で応える。この単純な往復が、対話の 出発点である。まだ画面はなく、やり取りは紙のロールに印字されていた。やがてブラウン管が普及した あとも、多くのソフトウェアは画面を「ガラスのテレタイプライタ」として——つまり1行ずつ文字が 流れていく紙の代用品として——扱い続けた。

流れを変えたのが、1979年に登場した表計算ソフトVisiCalcである。数字を1つ 書き換えるたびに表全体を素早く描き直す必要があり、そのためにはビデオディスプレイ用のメモリへ 直接書き込むしかなかった。大型の時分割コンピュータとダム端末をつなぐ通信路には、その速度がない。 大型コンピュータには真似のできないアプリケーションが、小型のパーソナル コンピュータの上に初めて現れた瞬間だった。

IBM PCの時代になると、多くのソフトウェアがオペレーティングシステムを迂回して、ビデオ ディスプレイメモリへ直接書き込むようになる。本来この近道は互換性のリスクを伴うが、IBMが ハードウェアの標準を作り、他のメーカーもそれに従ったため、そのリスクなしに速度だけを手に 入れられた。この「画面用のメモリに直接書き込む」という発想が、次のセクションの主題である ピクセルとフレームバッファに、そのままつながっていく。

演習 1理解

ヴァネヴァー・ブッシュが1945年の記事「As We May Think」で構想した「メメックス」とは何か

演習 2理解

初期のコンピュータの多くが採用していた「バッチ処理」とはどのような使い方か

演習 3理解

テレタイプライタを使った最初の対話型コンピュータは、ユーザーとどのようにやり取りしていたか

演習 4理解

表計算ソフトVisiCalcが、それ以前の大型コンピュータでは実現できなかった理由はどれか

演習 5理解

IBM PCの時代、多くのソフトウェアがオペレーティングシステムを迂回してビデオディスプレイメモリに直接書き込んでいた。これが広く行われた理由はどれか

このセクション: 0 / 5 問正解

2. ピクセルとフレームバッファ — 画面の点をビットで描く

前セクションの終わりに出てきた「画面用のメモリに直接書き込む」という発想を、今度は仕組みの側から見る。ラスタディスプレイの画面は、ピクセル(画素)と呼ばれる点の長方形配列である。メモリのブロックが画面専用に割り当てられ、そのブロックの中のビットが1つ1つのピクセルに対応する——これがフレームバッファである。1ピクセルに何ビット割り当てるかで表現できる色の数が決まり、その関係は「色数 = 2の(ピクセルあたりビット数)乗」という単純な式で書ける。第4講で確かめた「nビットで2のn乗通りを区別できる」という考え方が、ここでは色という文脈に応用されているだけである。ピクセルの配列で表すラスタと、直線・曲線を計算式で表すベクトルの使い分けもここで押さえる。

ラスタディスプレイの画面は、ピクセル(画素)と呼ばれる 点の長方形配列である。コンピュータのメモリのうち一定のブロックが画面専用に割り当てられ、その ブロックの中のビットが、1つ1つのピクセルに対応する。この画面専用のメモリ領域が フレームバッファである。

1つのピクセルに何ビット割り当てるかを色深度と呼び、表現できる色の数は次の 式で決まる。

色数 = 2 の(ピクセルあたりビット数)乗

1ビットなら2の1乗で2色、つまり白と黒だけ。3ビットなら2の3乗で8色。2バイト(16ビット)まで 増やせばハイカラー、3バイト(24ビット)ならフルカラーと呼ばれ、1677万色を超える。これは 第4講「ビットの正体」で確かめた 「nビットで2のn乗通りを区別できる」という考え方が、そのまま色という文脈に応用されているだけ である。

大事なのは、フレームバッファに並んでいるものが、それ自体としては色でも絵でもないという点だ。 そこにあるのはただの数値の列である。ディスプレイという文脈がその数値を色として 解釈して、初めて画面に絵が現れる。第4講の結論——ビットの意味は文脈に依存する——が、ここでも そのまま成り立っている。

画面に描く方式は、ラスタだけではない。ベクトルディスプレイは、電子銃で直線や 曲線を直接なぞって描く。この方式の画面に対しては、ライトペンという装置が使える。 名前に反してライトペンは光を出すのではなく、光を検知する装置で、電子銃のビームが 自分のところを通過したタイミングから、画面上のどこを指しているかを判定する。

画像の保存形式としても、ピクセルの配列で表すラスタ(ビットマップ)と、直線・ 曲線を計算式で表すベクトルグラフィクスの使い分けがある。橋の設計図のような 幾何学的な図形は、数式で正確に表せるベクトルが向く。実際に架かっている橋を撮った写真は複雑 すぎて数式では表しきれないので、ラスタが向く。

ピクセルとフレームバッファの対応(1ピクセル=1ビット) 画面の2次元に並んだ点が、メモリの中では1列に伸びたビットの列になる ① 画面:4×4=16ピクセル(1ピクセルあたり1ビット=白黒2色) 01230123黒いマス = ビット 1白いマス = ビット 0メモリに並んでいるのはただの数値の列にすぎない。ディスプレイという文脈が、それを色として解釈する。 ② メモリ(フレームバッファ):16ビット=2バイト 左上から右へ、行ごとに並べる 001112031405061718090101110121131140151バイト目(ビット0〜7)2バイト目(ビット8〜15) 参考:1ピクセルあたりのビット数と色数(色数 = 2のビット数乗) ビット数計算色数1ビット2の1乗2色(白黒)2ビット2の2乗4色3ビット2の3乗8色4ビット2の4乗16色 この図のピクセルグリッドは1ビット(白黒2色)に固定。上の表は一般則の参照であり、この図の設定ではない

上の図の対応関係を、今度は自分の手で確かめよう。ピクセルをタップして白黒を反転させると、 そのピクセルに対応するフレームバッファのビットが即座に書き換わる。8×8のグリッドでは ちょうど1行が1バイトにあたるので、画面に描いた絵がメモリの上ではただの0と1の列に なっていることを観察できる。

さわって確認フレームバッファ — ピクセルに描いた絵はメモリのビット列

① 画面:8×8=64ピクセル(タップで白黒が反転)

② メモリ(フレームバッファ):64ビット=8バイト

行000000000
行100000000
行200000000
行300000000
行400000000
行500000000
行600000000
行700000000

ビット1(黒いピクセル): 0 / 64

このグリッドは1ピクセルに1ビットを割り当てているので、色数は2の1乗=2色(白黒)です。 ピクセルをタップするたびに、フレームバッファの対応するビットが1つだけ書き換わります。 8×8のグリッドではちょうど1行が1バイトです。メモリに並んでいるのはただの0と1の列に すぎず、ディスプレイという文脈がそれを白と黒として解釈することで、初めて「絵」になります。

演習 6理解

ラスタディスプレイにおける「ピクセル(画素)」とは何か

演習 7計算

1ピクセルあたり4ビットを使うディスプレイで表現できる色の数は何通りか(色数 = 2のビット数乗)

演習 8計算

横100ピクセル×縦100ピクセルの画面で、各ピクセルに1ビット(白黒2色)だけを使う場合、画面全体の情報を保存するのに必要なメモリは何バイトか

演習 9理解

「フレームバッファ」の説明として正しいものはどれか

演習 10理解

ベクトルグラフィクス(直線・曲線を計算式で表す方式)とラスタグラフィクス(ピクセルの配列で表す方式)の使い分けとして正しい説明はどれか

このセクション: 0 / 5 問正解

3. マウスとGUIの誕生 — Xerox PARCからMac/Windowsへ

画面にピクセルを書き込めるようになっても、それだけでは人間はコンピュータに近づけない。画面上のものを指し示す手段が要る。ダグラス・エンゲルバートは1945年にブッシュの記事を読んだことをきっかけに入力装置を根本から考え直し、ホイールとボタンの付いた小さな装置——マウスを生み出した。アイヴァン・サザランドが1963年に発表したSketchpadは、MITリンカーン研究所のTX-2というコンピュータの上で、ライトペンによって画面に絵を描き、それを保存できるようにした。そして1970年に開設されたゼロックスPARCで、アラン・ケイらの手によってAltoが生まれる。複数のプログラムがそれぞれのウィンドウに入り、ボタン・メニュー・アイコンをマウスで操作する——GUI(グイ)の誕生である。Altoは販売されなかったが、10年以上を経てMacintoshとして消費者の手に届き、続いてウィンドウズ戦争が始まった。

画面にピクセルを書き込めるようになっても、それだけでは足りない。画面上のものを人間が指し示す 手段が要る。ダグラス・エンゲルバートは、1945年にブッシュの記事を読んだことを きっかけに、入力装置そのものを根本から考え直す仕事を始めた。そこから生まれたのが、ホイールと ボタンの付いた小さな装置——マウスである。

画面を対話的なキャンバスとして扱うという発想の先駆けは、それより少し前にあった。 アイヴァン・サザランドが1963年に発表したSketchpadは、 MITリンカーン研究所のTX-2というコンピュータの上で動き、ライトペンによって 画面に画像を描いたり変更したりでき、その画像をメモリに保存できた。

1970年に開設されたゼロックスPARCには、アラン・ケイをはじめとする対話型 グラフィカルコンピューティングの先駆者たちが集まった。彼らが1972年から73年にかけて作り上げた Altoでは、複数のプログラムがそれぞれのウィンドウに入り、ボタン・メニュー・ アイコンといったグラフィカルなオブジェクトをマウスで操作できた。この一式が、後に GUI(グイ)——グラフィカルユーザーインタフェース——と呼ばれるものの始まりである。

Altoは製品として販売されなかった。その仕組みが消費者の手に届くまでには10年以上かかっている。 1979年にPARCを訪れたスティーブ・ジョブズらが影響を受け、1983年のアップルLisaは商業的に振るわ なかったが、翌1984年のMacintoshが成功する。初代Macintoshのハードウェアは エレガントではあっても革命的ではなかった。革命的だったのは、Mac OSという グラフィカルなオペレーティングシステムの方である。

グラフィカルOSは、テキストベースのOSとは要求される規模がまるで違う。MS-DOSのようなOSが提供 すべきなのは、主にファイルシステムを使うための少数の単純なAPI関数だった。対してグラフィカルOSは、 線・長方形・楕円、さまざまな字体の書式付きテキストといった「絵」を描くための、何百もの API関数を用意しなければならない。この時期に生まれた言葉がWYSIWYG(ウィズィウィグ) ——What You See Is What You Get、画面に見えているものと印刷結果がほぼ同じに見えるという性質である。

1985年にはGEM・VisiOn・Windows 1.0が相次いで発売され、いわゆるウィンドウズ戦争が始まる。 Windowsが多数のユーザーを引きつけるのは、1990年のWindows 3.0以降のことになる。

メメックスからGUI誕生までの歩み 「情報をどう扱いやすくするか」という問いが、道具の形をとって実現していく 時間 →1945メメックス構想情報を人間の連想でつなぐ架空の装置1963SketchpadTX-2上でライトペンで描き、メモリに保存1960年代マウスの発明ホイールとボタンで画面上の対象を指す GUIの誕生 1972〜73ゼロックス Altoウィンドウ・アイコンをマウスで操作できる1984MacintoshグラフィカルOSが消費者製品として成功1985〜1990Windowsウィンドウズ戦争を経て3.0で広く普及 Altoは販売されなかったが、その仕組みは10年以上を経て消費者製品として世に出た
演習 11理解

ダグラス・エンゲルバートが発明し、現在も広く使われている入力装置はどれか

演習 12理解

アイヴァン・サザランドが1963年に発表したSketchpadというプログラムの特徴として正しいものはどれか

演習 13理解

ゼロックスPARCが1972〜73年に開発したAltoが実現し、後に「GUI」と呼ばれるようになった特徴はどれか

演習 14理解

初代Macintosh(1984年発売)が、それ以前の一般的なコンピュータと比べて革命的だった理由はどれか

演習 15理解

MS-DOSのようなテキストベースのOSと、Mac OSのようなグラフィカルなOSを比較した記述として正しいものはどれか

演習 16理解

WYSIWYG(ウィズィウィグ)とは何を意味する言葉か

このセクション: 0 / 6 問正解

4. 光の合図、めぐりめぐって — シリーズの締めくくり

第25章は、電気による信号伝達よりも効率のよい媒体として、光ファイバーを通る光——光子を挙げて幕を閉じる。ガラスや高分子でできた細い管の中を、光は角を曲がりながら進み、電気信号よりはるかに速くデータを運ぶ。だが突き詰めれば、そこを流れているのは点いたり消えたりする2つの状態の合図でしかない。それは第1講で、懐中電灯の点滅と点字の凸凹と電気回路のオン/オフが同じ1つのことの言い換えだと確かめた、あの出発点そのものである。このセクションでは、全18講を貫いてきた一貫したテーマを振り返り、シリーズを閉じる。

第25章の最後で、話は情報を運ぶ媒体そのものに向かう。電気による信号伝達よりも 効率のよい方法として挙げられるのが、光ファイバーを通る光——光子である。ガラスや 高分子でできた細い管の中を、光は角を曲がりながら進んでいき、電気信号よりはるかに高速に データを運ぶ。

だが、その細い管の中を流れているものを突き詰めれば、点いたり消えたりする 2つの状態の合図でしかない。運び手が電子から光子に変わり、速度が桁違いに なっただけで、「オンとオフを並べて意味を作る」という骨格そのものは、モールス符号の短点と 長点を並べていた頃から何ひとつ変わっていない。

それは第1講「コードで世界を伝える」で確かめた ことそのものである。懐中電灯の点滅、点字の凸と平、電気回路のオン/オフ——形はまったく違うのに、 どれも同じ1つのこと、すなわち2つの状態で情報を表すという仕組みの言い換えに すぎなかった。光ファイバーの光も、速度と媒体が変わっただけで、そこは何も変わっていない。

第1講の組み合わせ論と懐中電灯の電気回路から始まり、ビット(第4講)、論理とゲート(第5〜6講)、 算術回路(第7講)、記憶とメモリ(第8〜9講)、自動化・技術史・CPU(第10〜12講)、文字コード・ バス・OS(第13〜15講)、数値表現と言語(第16〜17講)を経て、本講のGUIとピクセルにたどり着いた。 その全過程がやっていたのは、単純な「2つの状態」の組み合わせを、段階的に積み上げていく ことだけである。どんなに複雑に見える仕組みも、分解していけば必ずそこへ戻る——それが、この シリーズ全18講を貫いてきた一貫したテーマだった。

ここでシリーズは幕を閉じる。出発点の懐中電灯に戻ってきたところで、もう一度第1講から読み直すと、 同じ内容がまったく違って見えるはずである。全18講、おつかれさまでした。

演習 17理解

第25章の結びは、電気による信号伝達よりも効率的な情報伝達の媒体として何を挙げているか

演習 18理解

光ファイバーによる情報伝達は、このシリーズの第1講で学んだどんな仕組みの延長線上にあると位置づけられているか

演習 19理解

第1講の懐中電灯の点滅から本講の光ファイバーまで、このシリーズ全18講を貫いてきた一貫したテーマとして最も適切なものはどれか

このセクション: 0 / 3 問正解