対等型マイクロコンピュータネットワークのための ネットワークOS・HNOS/Hの構築
(昭和63年11月29日 原稿受付)
電気工学科重松保弘
情報工学科(学部生)石井泰仁
Design and Development of a Network Operating System HNOS/II for a Homogeneous Microcomputer Network
by Yasuhiro SHIGEMATSU Yasuhito ISHII
Abstract
One of the most important subjects in local area networks(LAN)is the construction of network operating sys忙m(NOS). This paper shows the structure and the functions of HNOS/H
(1{OLENET NOS/H)which is des輌g聡d題d developed f()r也e loca1紅ea頂crocomρ磁er netw〈)rk HOLENET. HNOS/His constructed of five components such as multiprocess monitor MP/M,
NOS Interface Manager, Network File Manager, Network Command History, and HOLENET com.
munication system. Using HNOS/H,users are able to access network resources from any hosts eξfe硫lvely. The command§アstem oH{NOS/H輌s desi肝ed as an exteMめn◎f that()f HNOS wh輌£h
▲sthe飯st NOS◎f HOLENET.
.. た簡単なネットワークOS・}INOS/H〈HOLENET 1.まえがき
Netw◎xk OS/恥[9][10引こついて述べる。}INOS/簸 データ処理機能の分散とオフィスオートメーションへ のコマンド体系は,HNOS[パ[8]のコマンド体系 の指向が強まるにともない,比較的狭い地域に分散設置 (MP/Mのコマンド体系をネットワーク用に拡張した されたコンピュータ,端末,各種オフィス機器等を相互 もの)にUNIXのリダイレクト機能を追加したもので に接続するローカルエリアネットワーク(Local Area ある。
Network l LAN)が急速に発展してきている。 LANの ネットワークOSの立場からみたネットワークの形態 大きな目的のひとつに,資源(ハードウェア,ソフト は,ホスト・ホスト型(対等型),クライアント・サー ウェア,データ等)の共用がある。この資源共用を効率 バ型(非対等型)および両者の混合型に大別できる。
的に行うために重要となる研究課題のひとつは,ネット HNOS/Hの立場はホスト・ホスト型を基本としている。
ワークオペレーティングシステム(Netw◎rk Operating すなわち,独自の資源とある程度の処理能力を持つホス System:NOS)の構築である。ネットワークOSを構築 トが,高速のLANによって結合されたネットワークを することにより,ネットワークのユーザは,ネットワー 前提としているのである。筆者らは,HOLENETを,
ク内の任意の場所から,ファイルやプリンタ等全ての こうしたネットワークのミニ・モデルと考えてHNOS/
ネットワーク資源を,統一されたコマンド体系のもとで Uを作成した。
アクセスできるようになる。本稿では,マイクロコン ネットワークがシングルユーザかマルチユーザかに ピュータネットワークHOLENET[2]一[5]上に構築し よって,ネットワークを管理するOSの機能は基本的に
62 重松保弘・石井泰仁
異なったものになる。マルチユーザの場合には,原則と 局にはホストマイクロコンピュータ(以下,ホストと呼 してユーザIDの一意性と,ファイルの統合および保護 ぶ)が接続されているので,レイヤ0はホスト間通信 が重要な問題であると指摘されている[1]。しかし,こ サービスを提供する,と言ってもよい。レイヤ0は,さ の問題は主として分散型OSにおいて重要なのであり, らに3つのサブレイヤで構成されている。すなわち,物
, ネットワークOSおいてはファイルの保護を除き必ずし 理サブレイヤ,一次局・二次局間通信サブレイヤ,局間 も重要ではない。とくに,こうした分散指向のOSを異 通信サブレイヤである。レイヤ1は,ホストのプロセス なるゲストOS上に実現するのはきわめて困難である。 間通信サービスを提供する。すなわち,すでに述べた3 シングルユーザの場合,最も重要になるのは,各プロセ 種類のプロセス間通信を提供している。レイヤ2は,基 スをどのホストで生成し,どのようにプロセス間通信を 本的にはユーザプロセスの存在する層である。しかし,
管理するかという点である。HNOS/nは,フ、アイルを この層に機能プロセス(function process)を置いて,さ ユーザが管理する立場でのマルチユーザないしシングル らに上位のプロセスにサービスを提供するよう拡充する ユーザの利用形態を前提にしている。HNOS/nでは, こともできる。その場合,レイヤ数は増加することにな 1つのコマンドラインの入力によって,いくつかのボス る。
ト上でプロセスが起動され,1つのネットワーク・バッ
クグランドジ。ブの形態で動作する.プ。セスが鋤さ 3・HN°S/皿
れるホストは,HNOS/Hコマンドによって指定される 3.1 HOLENETとその環境
ので,複数のバックグウランドジョブの実行を管理する HOLENETは,図1に示すように,5台のホストと のがHNOS/Hの主な役割である。この役割を果たす 5台のCCP(Communication Control Processor)から構 ために・HNOS/nでは,ゲストOSであるMP/Mお 成される。各ホストは,マルチプロセスモニタMP/M よびHOLENET通信システムにネットワークOSイン の下でスタンドアロン・TSSマルチプログラミングシ タフェース,ネットワーク履歴管理プロセス,ネット ステムとして動作する。環状に接続されたCCPは ワークファイルマネジャが追加された。以下,本稿では, HOLENETのサブネットワークを形成し,ホストとは HNOS/nのコマンド体系と機能について述べる。 独立に動作する。また,ホストのうち1台には日本電気
2.HOLENETのプ。トコル のマイク゜コンピュータPC−98°1VX2が接続されてお
り,Forks社のOS−9/68000ボード上でマルチタスク・
HOLENETのシステムとプロトコルについては,文 マルチユーザのOS, OS−9/68000が動作している。以 献[2]一[5]に詳しく説明してあるのでここではその要 後,OS−9/68000を簡単にOS−9/68Kと呼ぶ。
約を述べるにとどめる。HOLENETの通信ソフトウェ
ァの基本的な目的は・ユーザプロセス間に通信の手段を HOLENET
提供することである。プロセス間通信の方式としては, l l 現在のところ①バーチャルサーキット,②データグラム, i HOST(5) HOST(4) HOST(3) i
③ブロードキャストの3方式が使用できる。バーチャル i ccp ccp ccp i サーキット方式では,プロセス間に論理的な通信路が設 : :
定さ樋信が行われる・データグラム方式で{よ論理通 i 匝トーcc i
信路は設定されず,複数のプロセス間で任意の時点で : :
、 : HOST(1) HOST(2) 1
メッセージの交換が可能となる。ブロードキャスト方式 .._一__一__.一一一._..__一._一_ノ では,やはり論理通信路は設定されず,1つの局から他
の全ての局に対し同報通信が実行される。
OS−9/68K
層誉㍑藁嶽『蕊㌶歴鷺1 ◎1二E蓮F扇:一一一一一1ニー−1
ヤには最下位より昇順にレイヤ番号が与えられている。 apollo社のネットワーク レイヤ0は局間通信サービスを提供する。現在,1つの 図1 HOLENETの形態
3.2 HNOS/五のシステム構成 た,プロセスの起動ではコンソール入出力の,ディスク HNOS/Hは, MP/Mと}IOLENETの通信ソフト ディレクトリの検索とファイル内容の表示ではコンソー ウェアに,ユーザとシステム間のインタフェースをとる ル出力の,リダイレクト機能が各々使用できる。以下に ネットワークOSインタフェース(NOSIF),ネット 個々のコマンドについて説明する。以下の説明において,
ワークを介したファイルの管理を行うネットワークファ 局番は[1][5]または[0]のうちの1つで,局番がない イルマネジャー(NFM),および,投入されたコマンド ときは自局を意味している。また,{}は省略してもよ の処理状況を管理するネットワークコマンドヒストリー いことを示す。ドライブ名はA:,B;, C:, D:のうちの
(NCH)で構成される (図2)。 NOSIF, NFMおよび どれか,デバイス名はドライブ, CON:, LST:のうち NCHは, MP/Mの常駐システムプロセスとして組み込 のどれかである。
まれている。また,NFMはHOLENET通信ソフト
ウェアを用いて他局とメッセージ交換を行う。これらは, ①プロセス起動コマンド
全ての局(OS−9/68Kを含む)上に存在し, {局番}プロセス名 {〈{局番}ファイル名1}
OS−9/68Kが接続されているホストとOS−9/68K上に {〉{局翻 ファイル名2}
は,相互に通信を行うためのプロセス(AUXIO)が存在 ②ディスクディレクトリの検索コマンド する。 DIR l局番} {ドライブ名:} {ファイル名}
3.3 HN◎S/亙・ユーザコマンド {〉{局番} ファイル名}
以上述べたシステム構成の下で,HNOS/nは,任意 ③ファイル内容の表示コマンド の局から他のすべての局の資源をアクセスする手段を提 TYPE 掲翻 ファイル名 供している。これらの手段は,MP/Mコマンドを拡張 ④ファイルのコピーコマンド
したHNOS/U・ユーザコマンドとして実現されている。、 PIP {局番} {デバイス名1ファイル名}=
現在,HNOS/皿・ユーザコマンドには,①プロセス 局番} {ドライブ名}ファイル名 の起動,②ディスクディレクトリの検索(DIR),③ファ ⑤ファイルの消去コマンド
イル内容の表示(TYPE),④ファイルのコピー(PIP), ERA 隔番} {ドライブ名}ファイル名
⑤ファイルの消去(ERA),⑥ファイル名の変更(REN), ③ファイル名の変更コマンド
⑦各局のオンライン状態の検査(NETSTAT),⑧バッ REN 渇翻 Wライブ名}ファイル名1ニ クグラウンドジョブの確認コマンド(COMSTAT),⑨ ファイル名2 各HNOS/H・ユーザコマンドの使用方法を説明する機 ⑦各局のオンライン状態の検査
能(}IELP),⑪⑪コンソールの出力をファイルに格納す NETSTAT
るログ機能(LOGON, LOGOFF)が用意されている。ま ⑧バックグラウンドジョブの確認コマンド COMSTAT
⑨ヘルプコマンド ユーザ HELP
①
芦③N・SIF L。G。N{局番}{ドライブ名}⑩ログ機能の開始コマンド
NCH 2④
ファイル名{=局翻⑦NFM⑤ m亜}_。S.9/68K⑪・グ機』了一ンド
⑥⑤ 6 LOGOFF伺番}
HOLENET通信ソフトウェア一 3.4 HNOS/宜・内部コマンド
ユーザがコマンドを発信する局を制御局,その他の局 を従属局と呼ぶ。また,制御局からの指示によってデー
他のホスト @ タを送信または受信する椰を与えられた局を,各柱
図2 HNOS/皿のシステム構成 局または従局と呼ぶ。
64 重松保弘・石井泰仁
表1 HNOS/皿の内部コマンド
コード コード名 コードの内容 1 オープン ファイルをオープンする 2 メイク ファイルをメイクする
3 リード ファイルやディレクトリからデータを読み込む 4 ライト ファイルヘデータを書き出す
5 クローズ ファイルをクローズする
6 ライトクローズ データをファイルへ書き出してクローズする 7 エラークローズ ファイルをクローズするがエラー情報を返す 8 レリース NOSIFを解放する
9 ACK 正常終了のコード 10 NAK エラー終了のコード 11 デリート ファイルを削除する 12 リネーム ファイルの名前を変更する
13 ディレクトリサーチ ディレクトリをサーチするためにディ レクトリをオープンする
14 プロセス起動 プロセスを起動する
15 ネットワークステータスの要求 ネットワークの接続状態を要求する 16 ネットワークステータスの応答 ネットワークの接続状態を獲得する 17 ログ機能の開始 ログ機能を開始する
18 ログ機能の終了 ログ機能を終了する
NOSIFは・MP/Mのコマンドラインインタプリタの セージを表示し, ACK(ENDACK)の場合はNCHに 機能を拡張したものであり・HNOS/nが起動されると, 登録されているコマンドラインを削除してNOSIFへ通
まずNOSIFに制御が渡される。すると, NOSIFは 知する(図2⑧)。
NOS A> というプロンプトを出す。ここで・A>と 3.5 HNOS/n・ユーザーコマンドの処理手順例 はデフオルトのドライブ名である。ユーザからコマンド ここでは,HNOS/H・ユーザーコマンドのうちリダ ラインの入力があると(図2①)・それを解析し・コマ イレクト機能を使ったコマンド例をあげて,その処理手 ンドパケット(表1の内部コマンドとそのパラメータか 順を具体的に説明することにする。
ら構成される)を作成する。次に・NOSIFは・入力さ 次にDIRコマンドの例を示す。
れたコマンドラインをNCHへ登録を要求し(図2②),
NOS A>DIR[3]C:〉 [4]B:EXAM その応答としてコマンド管理番号を得る(図2③)。こ
のコマンド管理番号によってNCHはコマンドの処理状 このコマンドは,3局のCドライブのディレクトリを 況を管理する。NOSIFは,コマンドパケットにこのコ 4局のBドライブのファイルEXAMに格納するための マンド管理番号を加えてNFMへ送る(図2④)。コマ ものである。ただし,コマンドは,1局から入力したも ンドパケットを受信したNFMは,パケットのなかで指 のとする。コマンドは,以下の手順で実行される 定された局が自局であればその処理に入り,他局であれ (NFM間の処理手順のみを示す。図3参照)。
ばその局がオンライン状態であることを確認した後,コ
マンドパケットを送信する(図2⑤)。従属局NFMは, ① 1:NOSIF(1局のNOSIFを示す。以下同様)
コマンドを処理した結果,受諾応答(ACK),拒絶応答 は,3局のCドライブのディレクトリオープンコマ
(NAK),または終了応答(ENDACK)を制御局へ送る ンド(13)を1:NFMへ送る。
(図2⑥)。制御局NFMは,その応答をNCHへ送る ② 1:NFMは,それを3:NFMへ送る。
(図2⑦)。NCHは,応答がNAKの場合はエラーメッ ③ 3:NFMは,ディレクトリをオープンする。成功
1、NOSIF 1柵 3燗 4、NFM 〈⑤,⑥を,データがなくなるまで繰り返す)
蜘 ②1Ω、③、.疋 ⑦3:NFMは・フ・イル転送が糸冬了したのでフ・イ
/ \、 ルノーマルクローズコマンド(5)を41NFMに送る。
ぐ きロカプ ベし
/ ④3、.3. \、 ⑧4:NFMは, EXAMファイルをクローズし1:
ハ
二 4,.4, \ NFMにACK(9)を送る。
ロニ…⑥…一^一一「ロ
ディスク ぴ・ 一 以上の手1・1頁が正常に終了すると,・・NFM Iま,1:
⑧§7 ズ
NCHにACK(9)を送り,処理を終了する。また,1:
図3 DIR[3]C:〉[4]BlEXAMの処理手順 NCHは・登録されていたコマンドを削除する。もし異 常終了した場合は,1:NCHはコンソールにエラー メッセージを表示して登録されでいたコマンドラインを すれば,4:NFMヘファイルメイクコマンド(2)を 削除する。
送る・(失敗すれば,1:NFMへNAK(1戊を送り, 3.6 MP/M上でのリダイレクトの実現
処理を終了する。) ,MP/Mは, UNIX系のOSとはコマンド体系が異
④4:NFMは, EXAMファイルの作成を試み,成 なっているので,リダイレクト等の機能を持っていない。
功すればレリースコマンド(8)を1:NFMへ返し, この節では, MP/Mにどのようにしてリダイレクトの 3:NFMに対してディレクトリリードコマンド(3) 機能を導入したかについて簡単に述べる。
を送る。(失敗すれば,ファイルエラークローズコ MP/Mは,基本的な構造として入出力はBIOS マンド(7)を3:NFMに送る。3:NFMは,]: (Basic Input Output System)によって実現されている。
NFMに対してエラー通知を行い処理を終了する。) そこで, BIOSを改造することによってリダイレクトの
⑤3:NFMはディレクトリを読み,4:NFMにファ 機能を実現することができる。 MP/Mは,本来マルチ イルライトコマンド④の形式で送る。 ユーザ用のOSである。そのため,複数のコンソール
⑥4:NFMはファイルに受信データを書き込む。 (最大16台)を管理することができる。 HOLENETで 3:NFMにファイルリードコマンド(3)を送る。 は・MP/Mをシングルユーザで使用している。すなわ (ディスクがオーバーフローした場合は,3: ち,コンソール番号0しか使用していない。
NFMにファイルエラークローズコマンド(7)を送り, 図4は,通常のBIOSのコンソール出力のリストであ 処理を終了する。) る。最初のCALL命令は,以下の行のジャンプベクト
;PROCEDURE CONSOLE OUT CONOT:
CALL PTBLJMP
DW CON◎OT ;CONSOLE #◎
;1》ROCEDURE CONSOLE #◎OUT
CONOOT
PUSH B MVI C, POLL MVI E, PLCOO
CALL XI)OS ;POLL CONSOLE#O OUTPUT I}OP B
MOV A, C OUT C◎1)ATA RET
図4 通常のBIOSのコンソール出力のリスト
66 重松保弘・石井泰仁
ルを呼び出すものである。この場合,コンソール番号0
4.あとがき しか使用していないので,ジャンプベクトルは1つしか
用意されていない。CONOOTルーチンは,コンソール 本論文では,マイクロコンピュータを対等型にネット 番号0に1文字出力するためのものである。 ワーク化したシステムのネットワークOSである 図4のBIOSを改造したものが,図5に示すBIOSの HNOS/Hについて述べた。 HNOS/Hの特徴は次のよ リストである。図4と比べてわかるようにジャンプベク うにまとめられる。(1)ユーザコマンドは,MP/Mコマ トルが9行追加されている。このうちコンソール番号1 ンドを基本としこれにリダイレクト機能を組み込んだコ から6までは,パイプ機能を実現するためのものである、 マンド体系になっている。(2)ユーザコマンドの処理を コンソール番号7は,自局のプリンターに割り付けられ NOSIF, NCHおよびNFMに分散しているのでコマン ている。コンソール番号8は,OS−9/68Kとの通信にの ド解析とその実行を平行処理できる。したがって,ユー み使用される。コンソール番号9は,ログ機能を実現す ザは,ネットワーク環境で複数のバックグラウンドジョ るために使用される。コンソール番号1から9には, ブを実行できることになる。(3)NCHの提供するコマン 各々1つのFIFOキューが割り付けられており,この ド管理機能によりバックグラウンドジョブとして実行さ キューを用いてバッファリングを行う。 れているコマンドの処理状況を確認できる。(4)OS.
NOSIFは,リダイレクトを含むプロセス起動コマン 9/68Kが登載されているPC.9801からHOLENETの ド(例えば,NOS A>PRO1>FILE1)を受け取った 全資源を管理できる。
場合,コマンドを解析したのちNFMに対して,パイプ 本研究では, HNOS/Hのコマンドにリダイレクト機 の使用を通知する。NFMは,パイプ番号を選定すると 能を持たせてみたが,今後, UNIXのコマンド機能 NOSIFにパイプ番号を返す。以後これらのパイプを使 (パイプ機能等)を追加し,より統一的で機能的なコマ 用してリダイレクト機能が実現される。 ンド体系に発展させることを,現在,検討している。パ
;PROCEDURE CONSOLE OUT CONOT
MOV A, D
CPI NMBCNS ;IF(D>=NMBCNS)THEN JUMP ERROR JNC RTNEMPTY ;
CALL PTOLOT ;実際のコンソール番号に変換する CALL TBLJMP ;
DW CONOOT ;CONSOLE#O DW CON10T ;PIPE#1 DW CON20T ;PIPE#2 DW CON30T ;PIPE#3 DW CON40T ;PIPE#4 DW CON50T ;PIPE#5 DW CON60T ;PIPE#6 DW CON70T ;PIPE#7 DW CON80T ;PIPE#8 DW CON90T ;PIPE#9
CONSOLE#0は図4と同じ CON10T:
LXI D, TQ10T
CALL WRITWQ ;キューへ書き込む RET
以下,コンソール9まで同じ
図5 HNOS/皿のBIOSのコンソール出力のリスト
イブ機能などは,1台のホスト上に複数のNFMを生成 A⑳licatめn・鑓4ini−and M輌・τ。−C・㎜pu撤三n In董・m⊇on
すれば容易↓・期でき⊇わ旭・日召和62鞭末に, 腸隠tati°n and Lib「a「ieぷ「品゜11an輌721一 本学の電気工学科にapoll◎社のDOMAINネットワー [3]重松保弘,柴田芳樹,小出真:激育・研究用マイクロ クが導入されたので,HNOS/1で検討したネットワ_ コンピュータネットワーク:HOLENET ・情報処理学 、 会「ローカルエリアネットワーク」シンポジウム論文集,
クコマンドンステムをDOMAIN上に移植することも pp.115.122,198&
今後の課題である。現在は,ユーザープロセスから [4]柴田芳樹:激育・研究用マイクロコンピュータネット
HN・S/n内部コマンドを発倍できな・・カUれを可能 :蕊LEN百助1磯=報工学=編・
にすることも今後の検討課題である。 [5]重松保弘1ミマイクロコンピュータ・ネットワークァー キテクチャの基菅,啓学出版,p.164,1986.
[6]MP/M:Multiprogram㎜ing Monitor Control Program 謝辞 HNOS/Hの実現に協力していただいた九州工 User s Guide:Digital Research, pacific Grove, CaL, p.
業大学工学部の小川明氏および辻靖幸氏に感謝する。ま ]53 198a
〔7]折田克彦:ミローカルエリアネットワークにおけるネッ た・日頃・御指導いただく九州工業大学工学部の安在弘 トワークOSの研究・,九州工業大学情報工学科修士論文,
幸教授に感謝する。なお,本研究の一部は,昭和62年度 P・72・1987・
大鵬報蹴金によるものである・ [8]漂㌘管禁燃竺。覧麗:1竺
そのネットワークOSの構築メ,九州工業大学研究報告
参考文献 [,]篇工瓢1慮1票一。の蹄卵,
[1]Tanenbaum, A, S。 Van Renesse, R: Distributed Oper一 年度九州工業大学情報工学科卒業論文, p.59,1988.
ating Systems , Conputing Surveys, Vot 17, No.4, pp. [10]辻靖幸,㍉コーカルエリアネットワークに関する研究フ,
但9−470,1985. 昭和62年度九州工業大学情報工学科卒業論文,p、
[2]Shigematsu, Y.: HDLC Oriented Local Area Ex. 51,1988.
perimentai Microcomputer Network l IIOLENET, The