[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
第20回 謎のOS XTALはオープン・プロトコルで異機種接続OK!
- Subject: 第20回 謎のOS XTALはオープン・プロトコルで異機種接続OK!
- From: アックス 竹岡尚三(たけおか しょうぞう)さん
- Date: 1996.09
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/ に戻る