[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

第20回 謎のOS XTALはオープン・プロトコルで異機種接続OK!



1996年9月号 UNIX USER誌掲載「ルート訪問記」の過去記事

第20回 謎のOS XTALはオープン・プロトコルで異機種接続OK!

今回は、私の友人である竹岡尚三(たけおか しょうぞう)さんを
訪ね、彼が社長をなさっているアックス [注1] について、また同
社のネットワーク構成や開発されたマルチタスクOSのXTAL(クリス
タル)などについてお聞きしました。


*会社のコンセプトは「変なことをやる会社」!?

私(以下Y):こんにちは。まず最初に竹岡さんの会社について、
業務内容を中心に簡単に紹介していただけますか?

竹岡さん(以下T):超並列計算機 [注2] の設計をする会社とし
て、1992年に創業しました。具体的には、アーキテクチャ設計、ハー
ドウェア設計、マイクロ・コード開発、開発環境のソフト開発、並
列コンパイラの設計を行っています。

それと並行して、’92〜’93年にTCP/IP [注3] プロトコル・スタッ
クを開発しました。この開発にあたってオリジナルOSの方が便利だ
ということで、マルチタスクOSの開発をスタートさせ、XTAL [注4]
というOSを作りました。これは、すでにシャープ、東京大学に納め
ており、シャープの新製品 [注5](カラー・ザウルス)のOSとし
て組み込まれています。

 当社のコンセプトは、「変なことをやる」です。変なこととは具
体的に「速いコンピュータを作ること」で、CPUからOSまでまった
くのオリジナル・コンピュータを作り上げることです。変なOSにし
ますと、ほかのマシンにつなぐためには共通のプロトコルが必要な
ので、オープン・プロトコルとしてのTCP/IPは欠かせません。その
ため、インターネットがブームになった現在は、インターネット環
境構築のコンサルテーションも行っています。

 つまり簡単にまとめると、「変なコンピュータと変なOSを作って、
オープン・プロトコルでさまざまな機械とおしゃべりさせている」
のです。「会社の仕事」というよりも私の趣味ですね。これを目指
して、日々地味な仕事を行っているといったところでしょうか。


*ネットワーク・コンセプトは「チープだがロバスト」

Y:ここのネットワーク環境についても教えていただけますか?

T:正社員5名('96年当時)の小さな会社ですから「チープだがロ
バスト [注6]」、すなわち「お金はかかっていないけれど壊れに
くい」をコンセプトにしています。ロバストというのは、いわゆる
「象が踏んでも壊れない [注7]」というイメージです。

 ここのシステムの一番の特徴は、複数個のネットワークの口があ
ることです。外部への接続の口は、現在4つあります。東京にある
ネットワーク・センターというプロバイダと京都市内にあるプロバ
イダXAXON [注8]、そして京都大学の3つがインターネットへの口
で、残りの1つが某メーカーのプライベートなネットワークへの口
です。現在、京都大学からはネット・ニュースを取り込んでいるだ
けですし、某メーカーの口はプライベートな電子メールやファイル
のやり取りに使っているだけですが、非常時にはこれらの口からも
インターネットに接続することが可能です。

 デジタル線(INS 64)でつながっているのは、XAXON間だけです。
アセンド・コミュニケーションズのPipeline 25 [注9](ISDNルー
ター [注10])とFreeBSDがインストールされたホスト名gateという
ファイアウォール・マシン [注11] とで、バリア・セグメント [注
12]を作っています。バリア・セグメントを構築する [注13] ため
には、プロバイダにいくつかIPアドレスを提供してもらわないとい
けないので、コストがかかったりプロバイダの許可が出なかったり
するのですが、うちはXAXONとは友好関係にあるので融通を利かせ
てもらっています。

 それ以外の3つの口は、28.8Kbpsのモデムを経由してアナログ線
でつながっています。

 ネットワーク・センターにはaxefwというマシンが1台置いてあ
り [注14]、このマシンがルーティング、メールのスプール、FTPや
WWWのサーバーとして稼働しています。

Y:なるほど。たとえば、世界の人がhttp: //www.axe-inc.co.jp/
にアクセスしたときはこのaxefwが対応するわけで、こうしておけ
ば自社にWWWサーバーを置いて専用線でつながなくてもよくて便利
ですね。

T:京都のアックス社内にあるgateというマシンから、ネットワー
ク・センターのマシンaxefwに向けて、uucp over TCPを走らせてい
ます。そのときgateはXAXONに接続し、そこからインターネット経
由でaxefwに接続するわけです。XAXONは京都市内にありますから、
東京のネットワーク・センターに直接つなぐのに比べて電話代が非
常に節約できます。

 また、ネットワークの口をこれだけいくつも用意しておくと、1
つのプロバイダが工事などで急に不通になっても、代わりの方法が
いくらでも使えます。たとえば、「あるプロバイダとの接続がダウ
ンしているときに、別のライン経由で状況を問い合わせるメールが
出せる」というのは非常に便利です。もし、1つのプロバイダしか
使えないと、音声電話をかけて状況を聞くしかないし、不通の間は
外部にメールが出せずに業務がストップしてしまうでしょう。

 しかし、このようにいっぱい口を設けると管理が大変になるんで
すよ。たとえば、「どの口からどのホストに投げるか」などのメー
ルを外に出す際の振り分けは、sendmail.cf [注15] に記述してあ
ります。きちんと書けば、当然きちんと振り分けられます。ただ、
最近では複数の口を持ったsendmail.cfを作ったことのある人はと
ても少なくて、普通の人だとどう書いていいかまったく手がつけら
れないと思います。

 そんなことからも、うちのネットワークは「ルート訪問記」とし
ては楽しめるはずですよ。

Y:本当にそうですね。そのうちUNIX USERの記事 [注16] として、
竹岡さん自身にもっと詳しく書いていただきたいものです。:-)


*BSDが好きな理由

T:社内LANについても簡単にお話ししましょう。

 現在、サンのWSが8台あります。この規模の会社としては自慢で
きる数でしょう。すべて、SunOS 4.xが動いています。Solarisは、
Java言語 [注17] のJDK実行用 [注18] にPC/AT互換機上で
(Solaris for x86)動作しているだけです。

 IBMのRS/6000というWSもあります。あと私が気に入っているのは、
NetBSD [注19] とOSF/1 [注20の両方が載っているDECのAlpha
(RISCマシン [注21])です。これにLinux [注22]をインストール
したこともありましたが、もう消しました。NetBSDが私のお気に入
りですので。

 あとは、大昔のマシンとしてSymbolics 3600というLisp [注23] 
マシンもあります。これは、'80年代中ごろの第五世代コンピュー
タ、いわゆる人工知能ブームの時代のものです。もうめったに使い
ませんが、まだまだ現役です。Lispを実行するためのハードウェア
であり、機械語命令もLispになっています。私の趣味のマシンでし
て、このようなマシンが作れたらと常々思っています。

Y:さっき「NetBSDが私のお気に入りです」とおっしゃいましたが、
理由を聞かせていただけませんか?

T:BSD(UNIXまめちしき参照)だから。:-) BSDが好きな理由を
いう前に、UNIXが好きな理由を説明しましょう。一番の理由は、ソー
ス・コードが付いてくるからです。「コンピュータ作り」を勉強す
るためには、ソースが付いていることが必須です。うちの会社には、
私の後輩の学生が数多く出入りしています。彼らがコンピュータを
勉強するためには、ソースの付いてこないWindowsやMacOSではなく、
ソースの付いてくるUNIXが必要なのです。

 次にBSDが好きな理由は、インターネットのプロトコルの実験が、
数多く行われているからです。TCP/IPがこれだけ広まったのは、'83
年にリリースされた4.2 BSDでサポートされていたからです。この
時代からインターネットの実験が行われてきたのは、常にBSD系の
OSだったという歴史があります。System V系であっても、基本的な
ネットワーク機能はすべてBSDからの移植なので、違うOSでも同じ
ような操作で使用できます。

 一方、Linuxのネットワーク管理コマンド、たとえばifconfigや
netstatコマンド [注24] の引数(オプション)は独特なんです。
昔からインターネットの開発を行ってきた人の中で、Linuxを使っ
ている人は非常に少ないから仕方がないのかもしれませんが、
Windows 95/NTのネットワーク管理コマンドの方がよっぽどUNIXに
忠実だと思います。

ただ、「Linuxも食わず嫌いではいけない」とAlphaマシンにインス
トールして使っていたのですが、私には使えないと判断して消しま
した。「ずっとLinuxしか使わない」と決めているのならばよいで
しょうが、さまざまなUNIX環境を使ってネットワーク関係の仕事を
する可能性がある学生には、Linuxという選択はどうでしょうかね。
でも、Linux自体を否定する気持ちはありません。Linuxを使いたい
人は使えばよいわけで、それを批判する気は少しもありませんので。

Y:ユーザーが、自分に適したものを選択すればよいということで
すね。


*XTALはマイクロカーネルの本来の姿を持つ究極のOS

Y:最初におっしゃられていたマルチタスクOSのXTALについて、詳
しく教えていただけますか? サポートしているCPUは何でしょう
か。

T:サポートしているCPUは、ARM、680x0、SH3、PowerPCなどです。

 一番の特徴は、組み込んで使いやすいOSだということです。通常、
UNIXはファイル・システム、たとえば/tmpがないと使えませんし、
コマンド類も実行ファイルがファイル・システム上になければ扱え
ませんが、XTALはROMとRAMさえあれば仕事ができます。

ファイル・システムは外側の一般プロセスとして作ってあるので、
あってもなくてもよいからです。ファイル・システムとは別になっ
ているのがマイクロカーネル [注25] の本来の姿であって、それを
実現しているのがXTALなんです。初期のMach [注26] のようにファ
イル・システムの必要なマイクロカーネルが、本来の姿というわけ
ではないのです。

 マルチタスクOSなので、同時に複数のプログラムを動作させるこ
とが可能です。しかもTCP/IPプロトコルが使えますから、ネットワー
ク上のマシンからtelnetして使うことができます。もちろん、
TCP/IPも一般プロセスになっています。普通のUNIXの場合、それも
混然一体ですね。

 実際にXTALを動作させると分かりやすいかもしれません(実行例)。

------------------------------------------------------------
実行例
------------------------------------------------------------
gagambo% telnet  arm 2000
Trying 192.47.224.153 ...
Connected to arm.
Escape character is '^]'.


Hello CRYSTAL world!!(Fri Jun 30 00:04:59 JST 1995)
NikoMon ready
:-) ps
1 ps   argc=1 argv[0]=ps
name    creator type   stat   w.type w.obj    timeout pr. sl. life   s.life
    #2   ______ task   -      none                     1   1    8002      0
DISP__   BOOT__ task   wait   queueR QDSP__           10   2      11      0
DMOUSE   BOOT__ task   wait   event  EVMD__           10   2     121      0
CMOUSE   BOOT__ task   wait   event  EVMC__           10   2     171      0
LEDA__   BOOT__ task   sleep  none            1       10   2       0      0
LEDB__   BOOT__ task   sleep  none            1       10   2       2      0
ABC___   BOOT__ task   sleep  none            55      10   2       0      0
PDEMO_   BOOT__ task   wait   event  DEMEVE           10   2       0      0
FDC___   BOOT__ ?      wait   queueR QFDC__           10   2     356      0
DSRV__   BOOT__ ?      wait   queueR QDFS__           10   2       0      0
ENRECV   BOOT__ ?      sleep  none            1       10   2       3      0
ENSEND   BOOT__ ?      wait   queueR NESEND           10   2       0      0
TCPRTY   BOOT__ ?      sleep  none            37      10   2       1      0
TCPCTL   BOOT__ ?      wait   queueR TCPCNT           10   2       1      0
TCPTST   BOOT__ ?      wait   event     #50           10   2       0      0
_STDOP   BOOT__ ?      wait   event     #46           10   2       0      0
DEMON_   BOOT__ task   wait   event     #48           10   2       0      0
TETRIS   BOOT__ task   sleep  none            7       10   2     836      0
BLOCK_   BOOT__ task   sleep  none            1       10   2     429      0
SHELL_   BOOT__ task   active none                    10   2       1      0
:-) kill leda
2 kill leda  argc=2 argv[0]=kill
object name=18520400
:-) kill block
2 kill block  argc=2 argv[0]=kill
object name=4c78d60
:-) ^]
telnet> qui
Connection closed.
gagambo% 

------------------------------------------------------------

psコマンドはUNIXと同じなんですよ。でも、これはたまたまUNIXと
同じ名前で同じ機能を持っていますが、まったく違うOSですから、
当然ほとんどのコマンド名はUNIXとは異なっています。アプリケー
ション開発時には、UNIXとの相性はとてもいいんですけどね。

 とくにTCP/IPがサポートされていますので、UNIXからのデバッグ
作業がとても楽にできました。通常なら開発マシンであるWSとター
ゲット・ハードウェアとは、RS232Cのケーブルで結びますから、実
機デバッグ作業 [注27はターゲット・ハードウェアのそばで行わなけ
ればなりません。しかし、XTALはTCP/IP対応ですから、ネットワー
ク上のどのマシンからでもデバッグできます。

 たとえば、ARMの提供している開発環境では、ターゲット・ハー
ドウェア側のDemonというソフトは、UNIX側のデバッガであるarmsd
の出先のような小さなソフトウェアで、この2つがbreakなどのコ
マンドをやり取りします。うちの場合は、TCP/IP対応に改造した
Demonとarmsdを使います。一番下にあるのがOSのXTALで、それに各
種の別プロセスが載っているという構成です。

Y:XTALについてまとめると、「XTALというOSではファイル・シス
テムが外側の一般プロセスとして存在するので、ファイル・システ
ムがなくても動く。だから、家電製品などの組み込みOSとして最適
である。マルチプロセスも可能なので高度な操作もできる。TCP/IP
プロトコルもサポートしているので、ネットワークにも対応可能」
となりますね。

T:これからの時代、家電製品だけではなくインターネット端末 [注
28のOSにも最適です。実は、インターネット端末は’89年に開発し
たX端末と発想は同じなんですけどね。

Y:高岳製作所のX端末の開発は、竹岡さんがアステックに在籍し
ておられたころにされた仕事でしたね。

T:そうです。X端末のCPUは68030で、その上に独自の組み込みOS
 [注29が載っています。ディスク・レスですから管理が不要なのがい
いでしょう。UNIXはもちろん、Windows 95でもMacOSでも、ディス
クがあると管理が必要になります。ネットワークを介してしか使わ
ないなら、ディスク・レスにして管理を不要にした方が便利なので
す。

Y:最後に、コンピュータ作りやOS作りの楽しさを一言でお願いし
ます。

T:変なコンピュータの上に変なOSが載って、標準のネットワーク・
プロトコルであるTCP/IPにつながったときの喜びでしょうね。

Y:素敵ですね。独自のOSを作るということは、多くの人にとって
かなわぬ夢だと思います。今日はロマンのあるお話を聞かせていた
だきまして、どうもありがとうございました。



[注1]  アックス

1992年4月に創業。所在地は、京都市。
WWWは http://www.axe-inc.co.jp/ 。


[注2]  超並列計算機

1000以上のプロセッサを使った超並列処理システム。主に科学技術
計算やコンピュータ・アーキテクチャの研究用に使用。


[注3]  TCP/IP

Transmission Control Protocol/Internet Protocolの略。アメリ
カのARPANET用に開発されたプロトコル。TCP/IPの上位のアプリケー
ション・プロトコルとして、電子メールのSMTP、ファイル転送の
FTP、仮想端末のTELNET、ネットワーク管理のSNMPがある。


[注4]  XTAL

アックスが開発したマルチタスクOSの名称で、クリスタルと発音す
る。Crystalと書く場合もある。


[注5]  シャープの新製品

1996年7月に発売されたカラー・ザウルス(液晶ペンコム「MI-10」)。


[注6]  ロバスト(robust)

「強健な、たくましい、がんじょうに作られた」という意味。


[注7]  象が踏んでも壊れない

「象が踏んでも壊れない」と聞いて、「アーム筆入れ」と反射的に答えてしまっ
た人はきっと30代。ちなみに「アーム筆入れ」とは、'70年代、小学生に人気
があった筆入れの商品名。


[注8]  XAXON

株式会社ザクソン。京都市内にあり、プロバイダ業務も行っている。


[注9]  Pipeline 25

アセンド・コミュニケーションズのISDNルーターの型式名。ルーター
とは、LANどうしを相互に接続するための装置の一種。


[注10]  ISDNルーター

イーサネットからISDNへルーティングするもの。ハードウェア層の
ブリッジ機能も備えているので正確にはブルータというべきだが、
一般的にISDNルーターと呼ばれることが多い。


[注11]  ファイアウォール

インターネットにIP接続されたネットワークを、不正な侵入から保
護するためにゲートウェイに設けるアクセス制限。


[注12]  バリア・セグメント

ファイア・ウォールを構成するネットワークのこと。


[注13]  バリア・セグメントを構築する

アックスのファイア・ウォールは「PC/AT互換機にNE2000互換のイー
サネット・カードを2枚差し、FreeBSDでスタティックなルーティ
ングを行っている。その上でDeleGateを動かしてFTPとHTTPはProxy
する」ことで構築している。なお、現在はパケット・フィルタリン
グやプロトコルの制限はとくにしていない。


[注14]  ネットワーク・センターにaxefwというマシンを1台置いている

アックスがネットワーク・センターにaxefwの設置料を払っている。
(当時)


[注15]  sendmail.cf

SMTP(Simple Mail Transfer Protocol)を利用してメールの送受
信をするメール配送プログラムsendmailを制御するコンフィグレー
ション・ファイルの名称。SMTPはTCP/IPのアプリケーション・プロ
トコルの1つであり、あるマシンからほかのマシンへ電子メールを
転送するためのプロトコル。


[注16]  UNIX USERの記事

ちなみに竹岡さんは、本誌の’96年10月号の特集記事として
「MacintoshにNetBSDをインストール」を書かれる予定。


[注17]  Java言語

サン・マイクロシステムズが開発したオブジェクト指向言語。イン
タープリタ形式であるため、Javaで開発されたアプリケーションは
OSやプロセッサに依存しないクロス・プラットフォーム対応となる。
たとえば、インターネット上のWWWサーバーに置かれているJavaの
プログラム(アプレット)は、クライアント側のJava言語に対応し
たWWWブラウザ上でプラットフォームに関係なく表示できる。


[注18]  SolarisはJava言語のJDK実行用に

Java言語の開発環境JDKは、SunOS上では動作しないのでSolarisが
必要。


[注19]  NetBSD

Linux、FreeBSDと並ぶ、フリーPC UNIXの1つ。余談ではあるが、
Alpha版のNetBSDは、400Mバイトのディスク・イメージをgzipによっ
て約80Mバイトぐらいに圧縮して、そのまま配っている。「インス
トール・ハードウェア・イメージがそのまま配られている」という
普通なら行わないことをやってしまうあたりが、竹岡さんがNetBSD
を好んでいる理由の1つらしい。


[注20]  OSF/1

’88年5月に設立されたUNIXとその関連技術の開発・普及を目指す
国際的な業界団体であるOSF(Open Software Foundation)が開発
したOSの名称。


[注21]  RISCマシン

RISCとは、Reduced Instruction Set Computer(縮小命令セット・
コンピュータ)の略。「リスク」と発音する。命令数を減らすこと
によって制御系を単純にし、ハードウェアの設計を容易にして処理
速度の高速化を図っている。代表的なRISCプロセッサには、サン・
マイクロシステムズのSPARC、DECのAlpha、IBMとモトローラの
PowerPC、ARMのARM、日立のSHシリーズ、富士通のFRシリーズ、NEC
のV800シリーズなどがある。


[注22]  Linux

フィンランドのLinus Bendict Torvalds氏が書き起こしたPOSIX互
換のOS。


[注23]  Lisp

マサチューセッツ工科大学のJ.McCarthy教授が考案したプログラミ
ング言語。Prologと並ぶ人工知能分野の基本言語で、特徴としてリ
ストと呼ばれるデータや操作命令の並びの形式を処理する。


[注24]  ifconfigやnetstatコマンド

ifconfigは、ネットワーク・インタフェースに対してIPアドレスを
設定するためのコマンド。netstatコマンドは経路制御情報を調べ
るほか、ネットワークの状態について調べられる強力(かつ無節操)
なコマンド。たとえば、ネットワーク・インタフェースの状態、
TCPのコネクション状態など、調べられる項目は非常に多い。


[注25]  マイクロカーネル

OSの基本的な機能を提供するカーネルを、必要最小限の機能だけ残
して小型化したもの。マイクロカーネルには、プロセス制御やデバ
イス・ドライバなどハードウェアに依存する機能やリアルタイム処
理に必要な機能だけを持たせる。カーネルの外部に切り出したファ
イル・システムやネットワーク機能などは、サーバー・モジュール
として動作する。XTALの場合、デバイス・ドライバもカーネルの外
に追い出しているのが特徴。そのため、基本的に一般プロセスと同
じ書き方でデバイス・ドライバが作成できる。


[注26]  Mach

Mach(Multiple Asynchronously Communicating Hosts)とは、米
カーネギーメロン大学がアメリカ国防総省高等研究計画局(DARPA)
の資金援助を受けて開発した分散OS。特徴は、UNIXとの互換性、タ
スクとスレッドの概念を導入しマルチプロセッサ処理を効率化、ポー
トとメッセージによるプロセス間通信、ハードウェアから独立した
仮想記憶管理機構などがある。


[注27]  実機デバッグ作業

「実機デバッグ」という言葉は、私にとって非常に懐かしい。とい
うのも、私が生まれて初めて仕事で書いたC言語のプログラムが、
ASDBという名前のシンボリック・デバッガの最下位モジュールだっ
たからだ。当時、文学部を出て入社したばかりの私には、「未知と
の遭遇の日々」であった。


[注28]  インターネット端末

オラクルなどが推奨するネットワーク・コンピュータ(NC)、いわ
ゆる「500ドル・パソコン」のこと。本体にハードディスクを持た
ず、必要なデータはすべてネットワークを介し、サーバーからダウ
ンロードして処理する。先ごろ、Network Computer Reference
Profile 1という標準仕様が公表された。


[注29]  X端末の独自の組み込みOS

この組み込みOSの名称は、Cinnamon(シナモン)である。X端末に
は、“Mint Is Network Terminal”あるいは“MInna no Network
Terminal”から「Mint(ミント)」という名称があり、Mintを動か
すOSとしてCinnamonという名前が付けられた。Mintの語源には「ハッ
カーのための端末だから“はっか”」という説もある。Cinnamonに
ついては、UNIX MAGAZINEの’89年10月号「Cinnamonオペレーティ
ング・システム その概要とスレッドを用いたプログラミング」
(竹岡 尚三 著)の記事に詳しく解説されている。


===================================================================
UNIXまめちしき

BSDとSystem V

 いまでも、UNIXの2大勢力であるBSD(Berkeley Software
Distribution)とSystem Vですが、基をたどっていくと両方とも
UNIX V7に行き着きます。

 BSDはAT&Tベル研究所が'78年にリリースしたUNIX V7を独自に拡
張したもので、カリフォルニア大学バークレイ分校によって開発さ
れました。特徴として、Bシェルを拡張したCシェル、スクリーン・
エディタvi、termcap、仮想記憶、TCP/IPに基づくネットワーク機
能、ジョブ制御など、数多くの機能を提供していることがあげらま
す。現在、これらの機能はSVR4やOSF/1にも取り入れられています。

 一方AT&Tは、’82年に商用UNIXとしてSystem IIIを販売し、その
後System Vへと版を進めていきました。 ’87年になって同社は、
System VとBSD、マイクロソフトのZENIXという3つのUNIXの互換性
を確保する作業を開始し、’89年11月にサン・マイクロシステムズ
との共同開発版であるSVR4を出荷しました。

===================================================================


(UNIX USER誌連載「よしだともこのルート訪問記」より)
http://www.tomo.gr.jp/root/ に戻る