Webデザイナーの為の「本当は怖くない」“黒い画面”入門 Part.09

Webデザイナーの為の「本当は怖くない」“黒い画面”入門シリーズも最終回です。今回はそもそも“黒い画面”とは何なのかを紹介します。

“黒い画面”とは何か

“黒い画面”とは何か。そりゃあもちろん今まで使ってきたコレ。

ユーティリティ

ターミナル.appのことでしょう。

しかし、実は今まで“黒い画面”として使ってきた物は大きく二つのソフトから成り立っています。これは歴史的経緯を説明した方が分り易いと思います。

Terminal(ターミナル)

Part.01で説明したように昔は大きな”ホストコンピューター”に多数の”端末”を接続して使っていました。

301130361_1e5f52d3d9_b

“端末”にはディスプレイとキーボードが付いています。”端末”のキーボードで文字を打つと、ホストコンピューターに送られ、結果が帰ってきて”端末”のディスプレイに表示されます。

昔のコンピューターは非常に高価だったため、1台の大型コンピューターが処理を行い、単なる入出力装置としての安価な”端末”を複数用意して使いました。

この”端末”、英語ではTerminal(ターミナル)というハードウェアをソフトウェアで模倣(emulate)したものがターミナル.appです。この種類のソフトを正確にはターミナルエミュレーター(Terminal Emulator)と言います。

昔は”ホストコンピューター”と”端末”だったものが、今は端末はソフトウェアになり、ホストと端末が1台のパソコン上で完結しています。(端末で自分自身に接続している)

ターミナルは文字を入力することと結果を表示することしかできません。では今まで使ってきた$マークのアレは何だったのでしょう。

Shell(シェル)

shell-de

$マークを出しているのはshell(シェル)という種類のソフトです。shellは$マークなどのプロンプトを表示してユーザーからの入力を待ち、入力されたファイル名のプログラムを実行し、終了したらまたプロンプトを表示して待ちます。

“黒い画面”の本質であると説明した、”ファイル名を入力するとそれを実行する”という機能はこのshellが行っています。

shellは殻という意味です。複雑なコンピューターを貝殻のようにつつみ、ユーザーとの仲介役をしてくれるためshellという名前なのだと思います。Finderも全く違う物に見えますが、コンピューターを包みこんでユーザーとの仲介役をしてくれるという意味では同じです。FinderのようなGUI(グラフィカルユーザーインターフェース)を持つものは特にグラフィカルシェルと呼びます。

このshellも単なるプログラムに過ぎません。/bin/shというのがそれです。shellを略してshとはやはり略し過ぎですね。

前回スクリプトを実行させる時に使ったshコマンドはこれです。普段は$の後に文字を打ち込んでいましたが、ファイルにまとめてshに渡せば同じ結果になるのは当たり前ですね。

代替ソフト

“黒い画面”は主にTerminal Emulatorとshellの二つで成り立っていると説明しました。両方とも代替ソフトが存在します。

Terminal EmulatorはMacでは[iTerm][2]というソフトが有名です。初期のターミナル.appは貧弱だったのでiTermが良く使われていましたが、現在ではターミナル.appも十分な機能を持つため、殆どのユーザーはデフォルトのターミナル.appを使っていると思います。

shは実はMacのデフォルトのshellではありません。Macで実際に使われているのはshの強化版とも言うべきbashというshellです。

bashの由来

元々shの正式名称はBourne Shellと言います。アメリカのAT&Tベル研究所のSteve Bourneさんが作ったshellなのでBourne Shellです。bashはBourne-Again Shellの略でBourne Shellの全ての機能をカバーしつついくつもの追加機能を付けたshellです。Bourne ShellのBourneとborn again(生まれ変わり)を引っ掛けた駄洒落です。

他にも/binディレクトリにはスクリプトを書くのに強いcsh、cshを機能強化したtcsh、最後のshellを目指して作られたzshなど様々なshellがあります。chsh(CHenge SHellの略)コマンドでデフォルトで使われるshellを変更することができます。

最後に

Webデザイナーの為の「本当は怖くない」“黒い画面”入門はこれで終わりです。どうでしょうか、“黒い画面”は怖くなくなったでしょうか?

このシリーズでお伝えしたかったのは、全体としては呪文か暗号のように見えるものでも、一つ一つの要素をとってみれば、”日本語に訳してみればそのまんま”だったり、”省略しすぎてるだけ”だったり、”それを作ったおっさんの名前”だったり、”昔の名残で”だったり、単純なことに過ぎないということです。

日本語ではDesigner(デザイナー)というとヴィジュアル面だけを担当する人という意味で使われがちですが、本来は設計者という意味合いの強い言葉です。ヴィジュアル面だけをやるならArtist(アーティスト)やIllustrator(イラストレーター)と呼ぶべきでしょう。

建築や家具などの工業製品のデザイナーにはエンジニアリングの基礎知識は必須です。Webデザイナーとは本来ヴィジュアル・システムを含めたWebの設計者であるべきです。

コンシューマー系Webサイトの大半を占める“黒い画面”すなわちUNIX系OSのエッセンスに触れることはWebのエンジニアリングを理解する上での一番の近道です。

これらのエントリーがそういった本当の意味でのWebデザイナーへの足掛かりになれば幸いです。