メインコンテンツまでスキップ

ユーザーレベルソフトウェア

ユーザーレベルでは、データバッファを管理し、他のホスト向けに設計された入力をフォーマットするサブルーチンが提供されます。ユーザーは自分のモニター内のネットワークシステムコールにアクセスできるため、そのようなサブルーチンを使用することは必須ではありません。

ユーザープログラミングによるアクセスに加えて、特別なプログラミングなしでテレタイプのような装置からネットワークに即座にアクセスできるようにするサブシステムプログラムを各ホストに持つことが望ましいです。サブシステムとは、テキストエディタ、コンパイラ、インタープリタなどの一般的に使用されるシステム構成要素です。ネットワーク関連のサブシステムの例として TELNET があり、これによりユタ大学のユーザーがスタンフォード研究所に接続し、通常の端末ユーザーとして振る舞うことができます。時が経つにつれてより洗練されたサブシステムが開発されると予想されますが、この基本的なものが初期のネットワークを直ちに有用なものにするでしょう。

ユタ大学 (UTAH) のユーザーが、同大学の PDP-10/50 タイムシェアリングシステムにダイヤルインしたテレタイプの前に座っています。そのユーザーは、カリフォルニア州メンローパークにあるスタンフォード研究所 (SRI) の XDS-940 上で、会話型代数言語 (CAL) サブシステムを操作したいと考えています。典型的な TELNET の対話を図 5 に示します。対話の各行の意味をここで説明します。

  • (i) ユーザーが UTAH にサインインします
  • (ii) PDP-10 の run コマンドが、ユーザーのホストで TELNET サブシステムを起動します。
  • (111) ユーザーがブレーク文字を指定します。これにより、ブレークに続くメッセージは、外部ホストへ送られるのではなくローカルで解釈されます。
  • (iv) TELNET サブシステムは、SRI のロガーへの一対の接続を確立するために適切なシステムコールを発行します。接続は、SRI が別の外部ユーザーを受け入れる場合にのみ確立されます。

UTAH のユーザーは、これで SRI においてログイン前の状態にあります。これは、計算機にダイヤルインして接続を確立した後、何も入力する前の標準的なテレタイプユーザーの状態に類似しています。

  • (v) ユーザーが標準的なログインコマンドで SRI にサインインします。ユーザーのテレタイプで入力された文字は、PDP-10 (ユーザーホスト) を通って 940 (サービス提供側ホスト) へそのまま伝送されます。これは SRI の 940 によって要求されるため、PDP-10 の TELNET は自動的に全二重の文字単位伝送に切り替わっています。全二重動作は PDP-10 によって許可されていますが、ほとんどの Digital Equipment Corporation のサブシステムでは使用されていません。
  • (vi) と (vii) 940 のサブシステムである CAL が起動されます。

この時点で、ユーザーはローカルの PDP-10 上のファイルシステムから、ローカルの CAL ファイルを 940 の CAL サブシステムにロードしたいと考えています。

  • (viii) このファイルを受信するために、CAL は UTAH への接続を確立するよう指示されます。"NETWRK" は、その性質が "PAPER TYPE" や "TELETYPE" に類似した、940 の定義済み名です。
  • (ix) 最後に、ユーザーはブレーク文字 (#) に続けて PDP-10 の TELNET プログラムへのコマンドを入力します。これにより、この目的のために確立されたばかりの接続上で、Utah から SRI へ目的のファイルが送信されます。ユーザーの次の記述は再び CAL で行われます。

TELNET サブシステムのコーディングは最小限であるべきです。なぜなら、それは本質的にネットワークシステムコールの上に構築されたシェルプログラムだからです。それは、ユーザーホスト内で、遠隔ユーザーと遠隔のサービス提供側ホストとの間に効果的にシャントを確立します。

基本的なシステムプリミティブ、ユーザーホストの TELNET サブシステム、およびサービス提供側ホストのマニュアルがあれば、今日でも遠隔ユーザーはネットワークを有益に利用できます。