みねっちょのマイコン関係ブログ

組込開発系フリーソフトやハードの情報発信ブログ

40年以上前の Emacs エディタのマニュアルが秀逸

サイト内 Google 検索:


最終更新: 2021-06-12:
Emacs エディタは今から40年以上前の1978年に、メインフレーム用のオペレーティングシステムである Multics 上で開発されたものです。1979年に発行された Emacs のユーザーズ マニュアルが秀逸で、現在でも LinuxbashEmacs モードで使用している人にはキーバインドを知る上で大変に役立つ内容です。

目次:



Multics オペレーティングシステムとは:

Multics (Multiplexed Information and Computing Service) とは、1965 年にアメリカのマサチューセッツ工科大学 (MIT) で開発が開始された研究開発用のオペレーティングシステム (OS) です。当時 Multics が動作していたハードウェアは、General Electric 社製の GE-645 というメインフレーム機です。

仮想記憶システムの TLB (Translation Lookaside Buffer) 等の、現在のコンピュータシステムの基本となる技術を生み出したプロジェクトです。因みに、TLB は日本語に直すと「変換索引緩衝機構」もしくは「変換わき見緩衝装置」という変な名前になります

f:id:minettyo:20210507233416j:plain:w100
Shared-access data processing system - MASSACHUSETTS INST TECHNOLOGY

しかし当時から巨人の IBM と比べるとビジネス規模が小さかった為、General Electric 社はメインフレーム機のビジネスを Honeywell 社に売却します。企業レベルでの Multics の研究開発も、Honeywell 社のソフトウェア開発部門であった Honeywell Information Systems 社に引き継がれます。尚、当時はミニコン用のオペレーティングシステムであった Unix の名称は、Multi に対し Uni を訴え、cs を x に置き換えたギャグです。

また、このシリーズのハードウェアでは、商用の オペレーティングシステム としては GCOS (General Comprehensive Operating System) という物が動いて居ました。これは、2000年代半ばまで使用されていた NEC 製のメインフレームACOS-6 (Advanced Comprehensive Operating System) という 36-bit ワードマシン (アドレスがワード単位に振られている) アーキテクチャの祖先にあたります。現在は、ACOS-4 という 32-bit バイトマシン (アドレスがバイト単位に振られ、32-bit ワードは 4 アドレス構成) の現代風アーキテクチャが生き残って居ます。

現在でも三井住友銀行の勘定系システム等で使用されています。
勘違いをしていました。GE-645 の直系の36-bit ワードマシンである ACOS-6 は、2000年代半ばにサポートが終了していました。現在の三井住友銀行等の ACOS シリーズは、ACOS-4 という 32-bit バイトマシンになります。



世界最初の Emacs エディタ:

この Multics という オペレーティングシステム の Release 7.0 の上で動作するビデオ スクリーン エディタとして1978年に開発されたのが Emacs です。テキストをリアルタイムに編集可能なスクリーン エディタは、当時としては最先端の技術でした。また、このエディタは、Lisp というコンピュータ言語で書かれていました。Emacs Lisp はメモリ使用量の制限から、インタプリタ型による実装で、関数呼び出しは実行時に名前の解決とリンクを行うという方式が採用されました。
余談ですが、Java 言語の発案者である James Gosling 氏も Multics を使用していた1人で、Multics 上に Pascal 言語のコンパイラの移植をしています。エディタには Emacs を使っていた様です。関数の呼び出しにおいて、実行時に名前の解決とリンクが行われるという概念が、Emacs LispJava で似ているのは偶然では無いと思われます。


この Multics オペレーティングシステム用に Honeywell 社が作成した Emacs エディタのユーザーズ マニュアルが次のサイトで公開されています。とても40年以上前に作られたとは思えない内容で、現在の Linux の 標準シェルである bashEmacs モードでも使われているキーバインドが解説されています。

f:id:minettyo:20210507004202j:plain

尚、VSCode (Visual Studio Code) のターミナル内キーバインドを、Ctrl キー系だけ Emacs する手順を【こちらの別記事】に記載しました。Meta キー系は移植していませんが、Ctrl キー系の機能一覧を記載してあります。



【Linux 関係の目次へ戻る】