Incompatible Timesharing System

**Incompatible Timesharing System**（**ITS**）は、マサチューセッツ工科大学（MIT）で開発された初期のタイムシェアリングオペレーティングシステム（OS）の1つ。アセンブリ言語で書かれており、CTSS（Compatible Time-Sharing System）との対比で名づけられている。主にMIT人工知能研究所で開発され、Project MACからも何らかの助力があった。

## 歴史
ITSの開発は、Project MAC においてMulticsプロジェクトの方向性を良しとしない人々（人工知能研究所の大多数）により1960年代末ごろに開始された。特に問題とされたのは、Multicsにおける強力なセキュリティ機能であった。名称は、がMITの初期のタイムシェアリングOSであるCTSSから発想して付けたとされている。

ITSは当初DEC PDP-6向けに開発され、後にPDP-10に移植された（というよりも開発の大部分はPDP-10向けに行われた）。1982年以降はあまり使われなかったものの、1990年までMITで稼動し、その後1995年までスウェーデンので稼動していた。

## 主な特徴
ITSには数多くの革新的機能が備わっていた。以下は、その中でも世界初の実装となった機能である:

* 世界初のデバイス非依存のグラフィックス端末出力を備えていた。プログラムでは汎用的な表示制御コマンドを使い、システムがそれを自動的に端末機器毎の適切な制御文字列などに変換した。
* ユーザープロセス内で動作する仮想デバイスをソフトウェアで実装するための汎用機構。
* また、その機構を使った、透過的なマシン間共有型ファイルシステム（ほぼ世界初）。ITSマシンは全てARPANETに接続されていて、あるマシン上で他のマシンにあるファイルをローカルにあるファイルと同じように扱うことができた。
* 洗練されたプロセス管理。ユーザープロセスは木構造の階層を形成しており、上位のプロセスが下位の複数のプロセスを制御する。下位プロセスは任意の時点で処理を中断させられ、その状態（レジスタの内容など）を調べることができる。その後、そのプロセスを問題なく再開させることが可能。
* 高度なソフトウェア割り込み機構を持ち、ユーザープロセスの非同期操作が可能。
* PCLSRingという機構により、擬似不可分操作、割り込み可能なシステムコールなどを提供。それまで、システムコールの途中で自分自身を含む任意のプロセスがその状態を観察することはできなかった。

これらの機能や他の先進的な機能は、その後のオペレーティングシステムに取り入れられた。

## ユーザー環境
ユーザー環境は、当時の他のOSとは全く異なっていた。

* 当初、パスワードがなく、ユーザーはログオンすることなくITSを使うことができた。正式にはログオンは可能だが、単に他のユーザーがあるユーザーがシステムを使っていることを知ることができるという意味しかない。
* システムの問題点をユーザーが発見した場合、その対処に斬新な手法が用いられた。システムをクラッシュさせるコマンドが用意されていて、これを誰でも実行することができるようになっていた。このコマンドは同時に誰がそのコマンドを実行したかをブロードキャストで通知するようになっていた。
* 全てのファイルを誰でも編集可能。
* 他のユーザーの使っている端末間で会話が可能であり、使用中の他のユーザーに助けを求めるコマンド（SHOUT）も用意されていた。
* 他のユーザーの端末の表示を見ることが可能である（*OS* = "output spy" というコマンドを使用）。見られているユーザーには通知が行くので、見ている人とのセッションを見られている側から切断可能（*JEDGAR* コマンドを使用。その名称はFBIのジョン・エドガー・フーヴァーから）。
* ゲスト（TURIST）は研究所内の端末からでもARPANET上の外部のシステムからでも利用可能であった。このようなアクセスに関するポリシーが後に制定された。なお、"TURIST" というのはファイル名が6文字に制限されていたためで、PDP-10 が36ビットワードであったため、1文字6ビットで6文字が1ワードに収まったため、このような制限があった。

このような奇異な特徴が数ある中でも、ITSのトップレベルのコマンドインタプリタはPDP-10の機械語デバッガ(DDT)で、未経験者にはそのコマンドは全く解読不能であった。

主なエディタとしては長年TECOが使われていた。Emacsは当初、TECO用のマクロを集めたものであった。

ITS上では様々なソフトウェアが開発されたが、中でも数式処理システム Macsyma、GNU INFOヘルプシステム、Maclisp、Emacsなどが有名である。

ジャーゴンファイルもITS上で始まったものである。

## 初期の開発者
* リチャード・グリーンブラット
* 
* 

## 参考文献
* ITS bibliography
* Bawden, Allen (n.d.) *[http://fare.tunes.org/tmp/emergent/pclsr.htm PCLSRing: Keeping Process State Modular]*
* Chiou, S; Music, C; Sprague, K; Wahba,R (2001). "A Marriage of Convenience: The Founding of the MIT Artificial Intelligence Laboratory." (pdf)
* Eastlake, Donald E. (1972). *[ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-238.pdf ITS Status Report]* （文書をスキャンした画像をPDF化したもので、大きいので注意）
* Lin, Yuwei (2004). “Epistemologically Multiple Actor-Centered Systems: or, EMACS At Work! Ubiquity 5(1). (pdf file)
* Williams, S. (2002). *[http://www.faifzilla.org/toc.html Free as in Freedom: Richard Stallman's Crusade for Free Software.]* Petaluma, CA: O'Reilly.

## 外部リンク
* Ken Harrenstien's PDP-10 simulator
* file system images of various ITS machines, including source and documentation of the final system
* instructions allowing ITS to run on a PDP-10 emulator.
* (Historical) Tourist access policy in ITS at MIT.
* An Introduction to ITS for the MACSYMA User
* ITS System Documentation
* Jargon File Entry
* Donald Fisk's ITS info