初めて MacBookを買ったのが 2008年だったので、もう 10年以上も経ってたのか。などと気付いてしまい、突然過去を振り返ってみたくなりました。
長くなってしまったので、暇つぶししたい時にどーぞ。
OS以前
- Panafacom Lkit-16
借り物。多分初めて触ったマイコン。これ用の TinyBASICを使ってStarTrekモドキのゲームを作って遊んでた記憶。 - TRS-80
借り物。BASICで遊んでた。フロッピーディスク(8inch)を初めて触った記憶。抜く前に(確か) Breakキーを押すのを忘れてプログラムを消してしまった記憶。バックアップ(印刷)が大事だと知った時代。 - FX-502P
借り物。GoToとGoSubの違いを理解せず、ゲームを作って遊んでた。ありがとう服部くん。 - その他ポケコン
FX-602P, FX-702P, PC-1501, PC-1262 このあたりのおかげで自分の今があるのかも知れない。
パソコン?系
- CP/M Plus
PC-8801+PC-8031-2W+ROM坊2で使ってたような記憶。これもフロッピーを抜く時に STOPキーを押さなければいけなかったような。当時はコピーが違法という概念を持っていない人が(自分も含め)多くて、友人がお前もやってみろ的にコピーして押し付けてきた。入門書を買って色々試していた。エディタは WordStarか、WordMasterを使ってた。TurboPascalやBASIC、BASCOM(コンパイラ) あたりで遊んでいた記憶。既にかなりあやふや。 - MS-DOS
バイト先にあった PC-100で使ったのが初めてではなかったか。当時はFEPがKTISというATOKの前身だった。主にモノクロのロードランナーで遊んでた。ASCIIに載っていたレイトレーシングの球を描くBASICを入れて奇麗だなーと思ってた程度。後に PC-9801でシステムコールを使ったりシステム領域をいじったりグラフィックRAMに直接アクセスしたり、FDC使ったり、GDC使ったり、割り込み使ってマルチタスクしたり、増設ポートを使ったカメラ取り込みや、TMS320制御など、各種ハードウェアに触れたのが楽しかった記憶。
そのおかげでパクリ元のUnixに興味を持つことになった。 - 106 OS
お客さんが使ってたマシンで動いてたOS。機械の実物を見た時には巨大さに驚いたのだが、OSの存在がよくわからなかった。コレを利用するには、パンチカードが必要だった。当時も全く理解できていなかったが、パンチカード1枚がエディタでいう1行に相当しており、ほぼ行単位で処理が行われていたような気がする。要はコマンドラインからコマンドを1行入れる感覚で、複数枚のパンチカードを流すイメージだ。もちろんコマンドラインのように長い情報を処理できないので、1つの事をさせるのに複数枚使う感じだった(パンチカードは数年後に特殊フォーマットされたフロッピーディスクのテキストデータ読み取りに置き換わっていた)。OSはディスクパックというハードディスクの円盤部分と磁気テープ(映画のフィルムみたいなやつ)で用意されており、時間貸しのマシンを利用する都度、そのパック(くそ重い)を専用の機械にセットして、ブートさせる必要があった。当時理解できなかった事も今なら色々理解できそうだけど、性能的にも操作手順的にも、もう触りたくない。
このOS上で動くプログラムをアセンブラで書いたことがあるが、当時の自分の知識は Sharpのポケコンか Z80で、レジスタがデータ用とアドレス用に分かれているのに慣れず、ついついアドレス用レジスタで計算をしたくなりひっかかってた。このあたりは MC68000でアセンブラを使い始めて理解することになった。 - VAX/VMS
お仕事で使う予定があり、事前に慣れておくためということで、顧客に用意してもらった環境。何の説明も無く端末が与えられて「独習してて」みたいに投げられてたので、仕方なくバッチでMS-DOSコマンドモドキを作って遊んでた。有隣堂で本を買って読んだけど、OSの基礎が無かったので、ちんぷんかんぷんのままだった。準備期間が終わった後に触った機器では SunOS 4.1.xが動いていたので、意味が無かった。 - Human68k
時系列が微妙だけれど、多分この頃ではなかろうか。MS-DOSを理解する上で、比較になるコレが意外と役に立ったと思う。また MS-DOS(PC98, DOS/V)や Unixとの機種依存部をできる限り隠ぺいしながらコードを書くことを意識するようになった。文字コードをゴチャゴチャやってたのもこの頃。X68000はPC-9801よりハードウェア設計が良かった(?)ので、CやアセンブラでOSやメモリ(IO含む)、各種コントローラを使って遊ぶのに適していたと思う。ゲームは作らなかったけど、グラフィック系、テキスト系含めて色々遊んでた。この頃に MIFESの Ctrl+Y(Emacsだとペースト、WordStar系のMIFESでは1行削除) 連打事件(当時の MIFESでは UNDOは1回のみ)のトラウマで、異なるOSで環境を合わせるために、MicroEMACS / NEmacsが自分の標準エディタになった。この時に Emacsに呪われたのであった。 - SunOS 4.1.x
お仕事で使用。顧客に用意された環境を利用。この時に提供されたエディタが NEmacsだった。主に hackと NLith(テトリスの箱の数が 1〜5になっていて、さらにお邪魔虫が出てくるゲーム)で遊んでた。当時考案したパスワードをいまだ流用している。困った物である。Unixへの興味が深まった時代だった。 - MINIX 1.5
Unixへの興味はあるものの、自分で自由にいじれる、壊しても怒られない環境にあこがれた。そんな頃に ASCIIから MINIXに関する本が発売され、PC-98にインストールして遊ぶこととなった。当時ネットワークボードが高価で、スタンドアロンで遊んでいた記憶がある。256倍本も買ったような。これのおかげで、マルチタスクOSの基礎が身についたような気がする。 - OS-9/OSK
X68000で Unixっぽい OSが動くぞ!的に、ハードディスク、OS、開発環境をアキバのT-ZONEで購入した。全部で 20万ぐらいだっただろうか。消費税分だけでも安くならないかと値切ったけどまけてもらえなかった記憶。OSの基礎はコレで身に着けた。OS-9のモジュール構造に馴染んだおかげで OS/2の静的リンクの仕組みにダサみを感じた。
そういえば会社の成果発表会みたいな催しで、余暇で作ったソフトウェア(別PCからRS-232Cを介してイメージユニットを制御したり)を(展示数水増しのため)陳列してたのを思い出した。やたらデカいモニタと、OS-9入りの X68kをレンタルしたのだった。業者は何でも貸してくれるんだなーと感心した。 - Unix (SVR4) Solaris, HP-UX, NonStop-UX(タンデム)
この頃になると、お仕事の方で複数のプラットフォーム対応が依頼されるようになった。SunOS用の NEmacsを Solarisや HP-UXに持っていって使えるようにするところから、だったような。HP-UXには HA(High Availability)の外部パッケージがあり、例によって丸投げされ、英語(苦手)のドキュメントを見ながら、結局手作業でバグ回避スクリプトを作成して無理やり動かした思い出。この頃はまだルータの組み合わせでFireWallを構成していたような。ネットワークの知識も無いのにマニュアルだけでルータ設定してた。その後 VeritasクラスタやらFireWall-1やらでずいぶん楽になった。そのせいで数年後 Linuxで iptablesがファイアーウォール扱いされる都度、気に入らない顔をしていた。 - OS/2
この頃になると、お仕事の方でも色々な OSでの開発が増えてきた。そのためお勉強が必要となり、触ることになった。ファイルシステムやらマルチタスクやらIPCの仕組みが OS-9系やUnix系とまるっと異なり、違うOSを触ることで他のOSに対する理解も深まるという、ありがたい環境だった。今なら頭がこんがらがって無理だ。エディタはもちろん MicroEmacsを移植して動かしてた。X68kで遊んでた機種依存隠ぺいの技術やエスケープシーケンス系が役に立った。そういえば Windows系のお仕事がやって来たことが無い。そっち系の知識が皆無なのも道理である。 - BSD/386
BSD/386は AT互換機で動作する有料の BSD系OSだった。日本語版はFourtuneが販売していた記憶。会社での開発環境等はコレを使っていた。X386やGNUパッケージ(主にコンパイラとtools周辺)の追っかけをやってたのもこの頃。日本語入力にはCannaを使っており、ノートPCがWindowsだったので、そちらには Canna for Win を入れて clientモードで使っていた。Unixのサーバで辞書を共有できるという設計だった。コレに入っていた Mozaicで会社の怪しいサーバにエッチな画像が置いてあるのを発見したのはいい思い出。
XのWindowマネージャにFVWM95を使っていたために、同僚には Windows95を使っていると思われていたらしい。 - NetBSD/x68k
X68030(自分のは Compactモデル)で(CPUを交換してピンを折って)動く Unix。当時(ソフトバンク本が発売される前)は MOで配布されていた。AT互換機用のISAネットワークカードを使うための増設ボード(Neptune-X)を有志が発売したりしていた。なんとか確保できたものの、ネットワークカードの初期化にATマザーボードが(当然CPU、メモリ等も)必要で、使うに至れなかった残念な記憶。 - 386BSD, FreeBSD
PC-9801で386BSDを動かしたものの、使えるネットワークカードがメルコ(Buffalo)の物だけだったような記憶。お試しでインストールしていたが、ネットワークに繋がらなず実用的ではなかった。メルコのNICは後日(Net/2騒ぎが収まってから)入手でき、FreeBSDをインストールした。BSD系はカーネルコンフィグが、Linux系はカーネル再構成がめんどくさかった記憶。Linuxでデバイスドライバ等がモジュール化されたのは大変ありがたかったが、パラメータ等を与えたり認識させるのが大変だったり(主に ALSAまわり)で、実はあまり時間短縮になっていなかったような気もする。 - BeOS
AT互換機(Gateway2000)で遊ぶ用。R3時代はハードウェアの制限が厳しかったが、R4で日本語も対応されたということで購入。しかし SCSIカードはサポートされず、グラボも相性のためかモノクロでしか動かなかった。その後 R4.5で多少まともに動くようになったものの、動かしただけで満足して使わなくなってしまった。その後 VMware上で Haikuを動かしたりしたものの、やはり動作確認で満足してしまった。アプリケーションが少なすぎるのが問題ではなかろうか。 - Linux
正統派 Unix(BSD)にあこがれていたことと、MINIXの神タネンバウム大先生から否定されていたこともあって、ずっと使うのをためらっていたOS。BSD系が Net/2でゴタゴタしている間に流行ってしまったので、手を出すことに。最初に使ったのは Laser5から出ていた Slackware+JE。 タコさんのマークだった。
Linuxのディストリビューションで他にそれなりに使ったことがあるのは、Plamo, Suse, RedHat, Turbo, Vine, PS2, Miracle, Fedora, Zaurus, CentOS, Debian, Ubuntu, Kali あたりかな。
気がついたら(GIMPが出てからか)、デスクトップ環境は、デスクトップマネージャと、ウィンドウマネージャ(Sawfish)と、ファイルマネージャ(Nautilus)に分離していた。VAIOでは evilwmを好んで使っていた。 - JavaOS
実際には使ってないけど、JVMに非常に興味を持って本を読んでた。絶対に JavaOSの時代が来ると信じてた。Crusoeが JavaOSを動かすための CPUとして有力候補だと思ってた。そういえば PocketCosmoも購入した。SunがOracleに吸収された時のショックは忘れられない。そういえば Linuxの MLで、Javaに Linuxを移植しようみたいなプロジェクトが持ち上がったのを想い出した。意味不明だったけど理解しようとは思わなかった。 - macOS
指が Emacsに慣れすぎてしまい、Windowsに馴染めず、自分はずっと Linuxを使うのかなーとか思ってた。だけど、gtkや Firefoxのデフォルトキーバインドが Windowsチックで、設定を変えてもどうにもすっきりせず、使い続けてた。
iPod touchの開発環境として買った MacBookを使っていたら、Linuxより Unixっぽかったので、もうこれでいいんじゃ? ってなってしまった OS。その後ノートPC方面でも国産ノートは日本語配列しか取り扱っていないことから(以前は VAIOの一部のみで BTO可だったが)、会社のノートPCもずっと MacBook系にしてしまった。
macを使うまでは、Aquaのデザインにあこがれていたのだけれど、自分が使いはじめた Leopardでは変更されていて残念だった。そういえば Windowsも Vistaや 7の Aeroが気になっていたのだけれど、自分が XPから移行したのは 8になってからで、Aeroは終了していた。自分はあーいうガキっぽいのがいいんだよ!
てきとーに振り返ってみたけど、自分のように BASICやZ80アセンブラからプログラム作りに入って、今もたいして変わらず Swiftをいじって遊んでるような人はそれなりに居るんじゃないかなぁ。