2014年06月06日

VINTAGE TERMINAL - CATHODE で気分はハッカーズ?

僕はオールド・コンピューターが大好き。 スティーブン・レビー 「ハッカーズ」、トレイシー・キダー 「超マシン誕生」。 今では本でしか知ることが出来ない、あのパソコン創世記を生きた彼らの息づかいが聞こえてくるようでワクワク、ドキドキするでしょう。 そんな古き良き時代にタイムスリップさせてくれる仮想端末(ターミナル)が今日ご紹介する CATHODE - ビンテージ・ターミナル。

CATHODE VINTAGE TERMINAL

CATHODE ファースト・インプレッション


CATHODE のプロジェクト・ページがこちら。  Mac OS X (10.6+) 版、iOS (iOS 7)版の2つがリリースされています。

Cathode | Secret Geometry

なんと Mac 版のお値段は1000円(デモ版あり)。 た、高いわぁ・・・。 しかし、俺のオールド・コンピューター愛を止めることは出来ない(興奮しておかしくなっている)。 喜んでお前のドッグフードを食ってやるぜ!、とデヴィッド・カトラー風(「闘うプログラマー」参照)に製品版を購入(CATHODE の完成度は十分高く、ドッグフードではないのでご安心下さい)。 ちなみに iOS 版は500円。 iPad mini あたりで使ったらクールですね。

さて、古き良き時代のシリアル・コンソールを起動しましょう。 ワクワク。

02 start cathode terminal


す、素晴らしい。 走査線の動きまでも再現したこの CRT ディスプレイ。 悔しいけどこういう技術力・芸術性・表現力を併せ持ったプロダクトとその技術者を醸造する環境は Apple/Mac まわりが一番かもしれませんね(それでも僕は不自由じゃない Linux が一番クールで刺激的なデスクトップ、ワークベンチだと思いますけど)。

03 launch cathode terminal


湾曲したディスプレイに表示されたメッセージが時代を感じさせます。 

04 cathode monitor


当然ですが、日本語(マルチ・バイド文字)は取り扱えません。 漢(オトコ)のコンソール道です。 筋金入りのシステム管理者ならば対応できるはず。

cathode 日本語対応


Preferences から Console, Monitor とそれぞれのテーマを細かく調整可能。

05 cathode preferences


うーん、博物館に来ているみたいで楽しいですね。

06 cathode dense theme


勿論、フラットな端末として使うこともできますよ。

07 cathode flat theme


Preferences > Terminal ではエスケープシーケンスに対応したカラー表示の有効・無効やスピード設定が可能。 スピードを遅くすればモデム時代のノスタルジーを味わえます。

09 cathode terminal colorization


実際に僕が楽しんでいる動画がこちら。




もし非仮想な真のビンテージ端末を見つけたら・・・


実は僕、廃棄寸前だったハイエンド UNIX サーバ用の端末を譲り受け、自宅の Linux PC につなげてニヤニヤしてたことがあるんですが、この前引っ越した時に処分しちゃったんですよねえ(残念・・・)。

え、やっぱり本物は違うのかって? そりゃあモチ最高!、リアルな端末を目の前にして、俺はこれから「ウォー・ゲーム」を始めるんだぜ!って大はしゃぎしましたよ(一人で・・・)。

wargames


いくら素晴らしい CATHODE であってもやはり仮想端末。 本当の意味であの端末ではありません。 何時かもう一度、中古・格安で名機が売られているのを見つけたら迷わず買ってクールなサブディスプレイにするつもりです。

vt220 serial console set p as a terminal

今日はそんな時の為に本物のシリアル・コンソールを Linux PC で使う方法もご紹介しておきましょう。

Linux では getty (ゲッティ)と呼ばれるプログラムがログイン処理を担っているのですが通常利用している (min) getty はシリアル・ポートは見ておらず agetty を使う必要があります。

もし、agetty コマンドが無ければ util-linux パッケージをインストールして下さい。

[root@linux ~]# agetty --version
agetty from util-linux 2.20.1


agetty さえ用意すれば後は簡単。 /etc/inittab ファイル(Ubuntu の場合は upstart 形式の設定ファイルになります)に次の1行を追加します。

[root@linux ~]# vi /etc/inittab

# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

# for serial console.
s1:2345:respawn:/sbin/agetty 9600 ttyS0 vt100


設定した値の意味はこちら。

説明
s1 識別ID。 4文字以下でユニークな値
2345 シリアル端末を利用するランレベル。
respawn getty 終了(ログアウト)後に再度繰り返し起動する。
/sbin/agetty 利用する getty へのパス
9600 通信速度(ビット/秒)。 9600 - 115200 が妥当
ttyS0 シリアル・ポート(|○|○|)のデバイス・ファイル名。 パスは含まない
vt100 端末種別(省略可能)


通信速度を遅くするとオールド・コンピュータ感が出るかもしれませんね。 シリアル(RS-232C)ポートは COM1 ならば ttyS0、COM2 であれば ttyS1 となるはずです。 また、デバイス・ファイルは絶対パス(/dev/ttyS0)で表記しない点にも注意しましょう。

inittab の準備が出来たら次のコマンドで init デーモンに設定を再ロードさせましょう。

[root@linux ~]# init q


これで真のビンテージ端末でログイン・プロンプトが表示された(る)はず!

もし、root でログインするならば /etc/securetty に利用する tty 名を追記しておく必要があります。

[root@linux ~]# vi /etc/securetty

console
vc/1
vc/2
... snip ...
tty10
tty11
# for serial console.
ttyS0


もし、貴方が大変気に入ってカーネル起動時のメッセージまでシリアル端末に表示したいと思ったなら /boot/grub/grub.conf ファイル(RedHat系)を編集して次のように新たな2行(--unit で指定する値は ttyS* の番号)及び kernel オプションに console=ttyS0,9600 を追加した起動エントリを作成してください。

[root@linux ~]# vi /boot/grub/grub.conf

#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.x.x.el6 - for serial console)
    root (hd0,0)
    # for serial console. --unit=0 (ttyS0), 8 bits, 0 parity
    serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
    terminal serial
    kernel /vmlinuz-2.x.x.el6 ro root=/dev/mapper/lv_name *snip* console=ttyS0,9600
    initrd /initramfs-2.x.x.el6.img

永遠に起動しなくならないよう、まず既存設定行をまるごとコピー後、新たなエントリとして作成・起動確認して下さいね。

それでは、より良いコンソール・ライフを。

ハッカーズ
ハッカーズ
posted with amazlet at 14.06.06
スティーブン・レビー 松田 信子 古橋 芳恵
工学社
売り上げランキング: 84,879

超マシン誕生 新訳・新装版
トレイシー・キダー
日経BP社
売り上げランキング: 26,353

Posted by netbuffalo at 21:00│Comments(0)TrackBack(0)ユーティリティ | Apple


この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/netbuffalo/4795690

コメントする

名前
URL
 
  絵文字