エムアイシーアソシエイツ

当時 Apple 倒産の危機に瀕していたのでサードパーティとして盛り立てるべく、SCSI の技術も身につけたかったのでエムアイシーアソシエイツにて HDD/MO/PD 用のフォーマッタードライバーの開発に携わっいました。1995年〜1998年の WWDC(Worldwide Developers Conference)に参加し Steve Jobs の復帰を目の当たりにしました。Jobs 復帰前の大規模な手術(Motorola 68K CPU → IBM&Motorola の Power PC)に続き、大規模な手術(旧MacOS のエミュレータ、旧ソースコードから新バイナリを生成するビルド環境)がおこなわれ彼の辣腕ぶりに敬服しました。

Jobs は WWDC で「人間にとって炭素が必須な様に、当面は移行時の暫定的なライブラリが必須だから、それらをカーボンと命名したよ!と言っていました。

  • Motorola 68K CPU → IBM&Motorola の Power PC
  • 旧MacOS のエミュレータ
  • 旧MacOS のソースコードから新OS のバイナリを生成するビルド環境(カーボン

Apple倒産の危機

当時のマック長所と言えば SCSI のディスク入出力が他より少し速いくらいで、Apple は酷いデザインのマック時代遅れで不安定なOS と心中しかけていました。MacPlus を購入した際、旧MacOS は10年持たずに終わると思っていたのですが…

下記をすべての次期 OS 候補を評価しましたが、どれも酷いものでした。iMac リリースからは少し遅れましたが、結局 Steve Jobs が持ち帰った BSD UNIX が MacOS X となり Apple の復活は約束されました。旧MacOS用コード68Kのアセンブリコードから一刻も早く離れたいと願っていました。

  • A/UX
  • Rhapsody
  • Garshwin
  • BeOS
  • MK Linux

SCSI

USB が登場し高速になる以前、パソコンの周辺機器は何でもかんでも SCSI ポートに繋がれましたので、SCSI の規格は短期間に成熟できたと思います。その後の周辺機器とのインターフェース規格は SCSI の資産の多くを引き継いでいるので、悩まされることが少なかった気がします。

ハードウェア・ソフトウェア協調設計をする場合は、例えば SCSI HBA が持っている高速化のための特殊な機能(Scatter/Gather List)など…当然ですがハード・ソフト両方に精通していないと難しい局面があります。

C++

C++は多重継承周りで幾度も仕様ブレたため、実際に使えるコンパイラーが中々リリースされなかったので C++の本を読んでは想像する意味のない時間を多く過ごしました。

確かパソコン用ではマックの THINK C++ が恐らく最初で、次いで MFC を含む MSC そして PowerPlant がリリースされたと記憶しています。

旧Macintosh と MO(光磁気)ディスク

当時は DVD-RAM が登場する前夜で追記可能なパソコン用ストレージデバイスで人気が有ったのは光磁気(MO)と層変化(PD)がありました。MO は速度・容量面で劣っていましたので廃れ、PD は DVD RAM へと進化しました。平均故障間隔(Mean Time Between Failures)の序列は(HDD>MO>PD)ですから、最新の macOS や Windows が MO ドライブをサポートしていないのを惜しく思っています。

macOS の母胎である FreeBSD の PD のドライバーを開発していたのは旧九州松下電器の技術者の方でしたし、MO のドライバーは PD のドライバーの小修正で作成できますから勿体無いと思って居ます。
2022年になって久しぶりに 68K や PPC の旧い Macintosh と幾つか所有している SCSI MO ドライブを使用してみたところ、いずれのドライブもハードウェア(レーザー)に起因すると思しき読み書きの不良が散見されました。いくらメディアが優良な平均故障間隔を謳ってもハードウェアの信頼性が低ければ台無しです。

暫定対策として、FWB社の Hard Disk Toolkit を使って SCSI の制御パラメータを変更(読み書き両方でリアサイン・ブロックをする様に設定)したところ少し改善しました。230MB よりも 640MB の媒体の方が結果が良好でしたし、容量が 640MB 以上の媒体のブロックサイズは 512バイトから 2048バイトに拡大され高速なので、新たに MO の媒体を求める際は容量が 640MB 以上のものをお勧めします。