私的コンピューター史

80年代編

ソフト工場

投げやりな就職先でボーっと過ごしているうちに自宅が取り壊されることになってしまった。 それで丁度勤務先の会社で寮付きの遠方出向の話が出たので乗ってしまった。 その時の社長の顔は、まさしく「ネギを背負った鴨」を見て居る目付きだったのだろうがまあ今となってはどうでもいい。

勤務地は大きな工場(ソフト+ハード)の3Fであった。縦横20x10のブロックにそれぞれ10個くらいの机があるので二千人くらいだろうか。 派遣ではない従業員・・・最近は正社員と呼ぶらしい・・が4F, 5F に。 部屋の中央部には端末が十台程度ずつ二十列ほど並んでいる。さらに端末列の端には一台ずつ端末コントローラーが。
端末は二色?カラーで 白、赤、緑 が表示される。 あと一色でフルカラーなのになにをケチって居るのだろうかと思った。
1, 2Fはマシン室だったか。 ここにいわゆるメインフレームが数台有る。 メインフレームというのはJIS用語によれば CPUのフレームだからサイズはアパートの一室程度しかない。 あとの広大な面積は全自動洗濯機程度の大きさのディスクユニットが整然と並んでいる。 これは200MBのリムーバブルHDで、メディアは大型の電気釜程度の大きさ、重量は5Kg程だったろうか。 これを両手に一つずつ持って階段を上るのはなかなかハードである。

WORK01と書いてあるのはメディアのケース。
このケースからディスクを出して洗濯機にセットする
DASD が縦横に並ぶ。
 
Rollei 35

IPLは専用のコンソール卓から行う。 ライトペンで操作するのだがやる機会はあまり無い。 一台のメインフレームは常時VMで三つに切り分けて使うからOS RebootにIPLは無い。 (と言いつつ VM上でさらにIPLをしたような話も?!)

当時のメインフレームのCPU速度は4MPISとか8MPIS程度(公称)であった。 その数年後にはCPUベンチマークに特化したマイコン・SPARC等・が数十MIPSとか出してしまったのでMIPSという単位も使われなくなった。 当時の売りはMassStorageSystem ・・ 200MB程度のテープドライブ数百台を単一メモリシステムとして扱う・・だった。
前述の200MBパックに入れたデーターは時間が経つと自動的にこのMSSに吸い上げられてしまう。 データーがいつの間にか消えて migrated 云々のメッセージを見たときはかなり焦ったものだ。

M382
M382, 手前のプロッターは温度と湿度を記録する。
1985頃、Rollei35, Tessar 40mm F3.5

メインフレームの操作

LOGIN

端末にはネットワークが二系統有って、それぞれ OACLOSE, SCPCLOSE のAAによるバナーが表示されている。 AAは本来の意味のASCII ART であるが、文字コードは当然ASCIIではなくEBCDICである。 しかし文字コードを使うようなプログラムを書くことは無いので最後までEBCDICを覚えるような事は無かった。 さて、バナーの下に login プロンプトが出ているのだが、その文字列を忘れた。 サイト毎に違うかもしれないので重要では無いだろう・・。 そして ID, Password を入れるのだが省略記法として ID/PASSWORD という 入力法も存在する。 例えばIDがC1739, Passwordが JKOK1234 だったら LOGIN: C1739/JKOK1234 と入れることができる。 すると当然のようにパスワードもその行に表示される。 これはなぜそうなっているのだろうか。
だれかが優先度の高い大量のJOBを流すと数百台の端末が一斉に遅くなってしまう。 そのとき当然loginも遅くなり反応がしばらく無くなってしまう。
UNIX端末とは違い入力は一行毎だから、いくら重くてもとりあえず一行だけはコマンドを送ることができる。 端末コントローラーは入力行が何を意味するのか知ることは無いから当然のように全てエコーバックしてしまう。
ただしLOGINIDのみを入れればOS側は次はパスワード入力要求を端末コントローラーに送るからパスワードエコーは無い。 ID/PASSを一行で入れたがるのは反応が遅いからである。
ID,PASSそれぞれの処理に10秒かかれば通常のloginに20秒かかってしまう。 一行で入れれば10秒で済む(・・と考えるのであろうが実際は不明である)。
だからシステムが重い時に大部屋を巡回すると何箇所もこの ID/PASSWORD がそのまま放置されて居る。 ちなみにID/PASSWORD全て大文字である。
なぜならキーボードに大文字しか存在しないので。(シフトだと記号が出るはず)

ただし端末も何種類か有って、フルカラー(青が出る)タイプもある。 OASYSキーボード 8inch FDD付きも数十台有り、これは自分の私物の8inch FDを突っ込んでワープロにすることもできる。 このOASYSタイプもメインフレームの端末になれるがその時は大文字しか送れない(と思う)。 ただしどっちにしろメインフレームからのデーターをFDに入れることは出来ない。
FDにデーターを入れるときはデーター入出力室? に行ってレコードプレイヤーのような機器に8inchFDを入れる。 しかしこれは滅多に行わない。二年間で使ったのは一度だけである。

外注用大部屋, 1985 秋? 手前が海側
Rollei 35

ファイルシステム

MSDOS/UNIXで使うファイルの種類というのは数あるファイルタイプのうちの唯一種類 - 不定長ファイルタイプ - のみである。
それに比べてメインフレームで使えるファイル種別には 固定長ファイルには改行コードという概念が無い。 ファイルシステムで一行が定まって居るので行末には何も無い。
一方UNIXは行の終わりがいつ来るのかわからないのでたとえば gets(char *)を使うといくら大きなバッファをもってもオーバーフローする可能性がある。 しかもマイコンから発展した現在の小型電算機の大半は単一スタックシステムで、そのバッファとサブルーチンの戻り番地が同居してしまう。 これでは簡単にシステムクラッシュでも乗っ取りでもできてしまうわけだ。

ファイルを使う時はまず alloc から始める。
alloc ファイルタイプ(固定、可変等) サイズ、 シリンダー数 ・・・
これでまず割り当てを行うわけだが、これはDOS/Win等でパーティションを切る事に相当するかもしれない。 だからファイルの断片化/Fragmentation というのも起きない。
では編集するとどうなるのかというと、なんと編集前のファイルはそのまま残り、編集後のファイル後ろにくっつく。
ここらへんの正確な説明は難しい。なにしろ用語が違う。ファイルとメインフレーム用語のデーターセットは一対一に対応しない。データーセットはファイルでもありパーティションでもある。

編集を重ねると alloc した領域を使い切ってしまう。そこで condense ( 使用済み領域切捨て )が必要になるが、ここらへんが煩雑でもある・・・ディスク容量が少ないからなのだが。 ちなみにメインフレームのファイルシステムはUNIXに組み込んで製品化したこともあるらしいが詳細は忘却。

メインフレームのファイルシステムは木構造では無い?
多くの解説本でUNIXはメインフレームには無い木構造のファイルシステムを持っていると書いてあったような気がする。
メインフレームではファイルを指定するときに 例えば foo.bar.test.doc のように指定する。
このときに foo.*.test.doc のような指定も可能である。
UNIXの / が . に代わっただけのように見えるし扱うことも出来る。
このとき問題になるのは ファイルの移動が 木構造ごと迅速に行えるかどうか、初期のMSDOSのように copy して del してないとできないのか。
それはアプリユーザーからは違って見えるのか。
等々疑問は沸いて出ますが、 最近の話 NTFSは move が迅速に行えませんね。
NTFSは木構造とは言い難いということでしょうか。どうでもいいでしょうか。

言語/shell

システムを発掘するといろんな言語システムが出てきます。
一番面白いのはBASIC。 MSのマイコン用ではなく本物が入っているので行列計算が文法的に(ライブラリではなく)そのまま出来ます。 実際の記述は忘却したが、3x3の行列の掛け算は
[ [cos(s), sin(s), 0],[-sin(s), cos(s),0],[0,0,1]] * [[x,0,0], [0,y,0], [0,0,z]] こんな風に直接計算できる。
shellはcommand.comよりは高機能で当時の4.1BSD /bin/csh 等と比べると操作はし難いような気がする。しかしこれは単に知識がなかったからかもしれない。
そのころ出たUNIXマガジンには "UNIXのシェルはメインフレームには無いこのような高機能がある" と列挙していた操作がだいたい出来たので、低機能ということは無いだろう。
メインフレームのパターンマッチング文字列は例えば数字の場合は単に # である。
UNIXの場合 [0-9] としなければならない代わりに [1-3] のような範囲指定も同様に出来る利点がある。
メインフレームの場合 数字範囲限定のマッチングをどのように記述するかは直感的にはわからない・・あまり使う頻度は無いわけだが。
メインフレームの操作は通産省時代の情報処理試験 一種/二種/特種での試験範囲なので常識の範囲であったが、知らない人は全然知らない。
マイコン上がり、大学の情報工学系、大企業のメインフレーム以外の部署の人にはわからない。
大学では情報系以外の理系が大規模な計算のためにメインフレームを使うので、そっちのほうに知られているだろう。あるいはどこにでも飛ばされる派遣要員にも縁が有る。
だから情報系エリートを自認する人はメインフレームを知らないことをステータスにすることも有った。 さらに病的になるとUNIXを知らないのが自慢ということになるわけだが、 そこまでの人はあまり居ない。(TRON坂村氏くらいか・・)

おまけ

  1. 作者不明のスクリプト..何やってるのか一目でわからないように作ってある模様。
    解説
    clear ... 画面クリアでしょう
    cnt=0 ... 使ってない?
    # SET &USER=USER .. この行は謎
    msg = "データー移動中"
    goto enter
    
    loop1: time <- 時刻を文字列にしてセット
           //2/6 19:15:30 の場合  0206191530 のように入る
     if (  時刻の十の位がゼロ、すなわち 午前10時前 ){
    
       謎
     }