■ 東ドイツのコンピュータ開発史#1 -2005年3月15日(火)01時01分
東ドイツ最初のコンピュータは、1955年にカンメラーとクォータムの二人がVEBカール・ツァイス・イェナで開発したOPREMA (OPtik-REchen-MAschine)である。
その後ツァイスはドレスデンで、D1からD4までの4機種のコンピュータを開発した。特にタイプD4aは1967年に33ビットワードで4096ワードのメモリを持つ全トランジスタ機として開発された。1964年に開発されたZRA1は、毎秒150命令の性能で30台が生産され、東ドイツとチェコスロバキアで使用された。
電子計算機Cellatron SER2はカールマルクスシュタットで生産された。その後この開発母体はRobotronへと組織を移行する。Robotronは1968年にEDVA(Robotron 300)を開発する。EDVAはトランジスタ機で40キロバイトのメモリと毎秒5000命令の性能を持ち、300台が生産された。
しかしここで、ES共同開発計画によって東ドイツの独自コンピュータ開発は、一時途絶える事となる。まず、ESアーキテクチャ試作機R-21コンピュータの開発が行なわれ、成功を収めた。これは当時ようやく芽が出始めた東ドイツ半導体産業のもたらした成果である。
次いで1973年にES-1040がリリースされた。0.38MIPSの性能を持つこの機種は177台生産され、EDVAと速やかに置き換えられていった。
第二世代ESであるES-1055はIBM370互換で半導体メモリを採用し、0.45MIPSの性能を持っていた。ES-1056、そしてES-1057の性能は1.5MIPSにまで達した。
■ みみらくの島 -2004年12月22日(水)22時45分
かくて十余日になりぬ。僧どもは念仏の隙に物語するを聞けば、「この亡くなりぬる人の、あらはに見ゆる所なむある。さて、近く寄れば、消え失せぬなり。遠うては見ゆるなり。」「いづれの国とかや。」「みみらくの島となむ言ふなる。」など、口々語るを聞くに、いと知らまほしう、悲しう覚えて、かくぞ言はるる。
ありとだによそにても見む名にし負はば我かぎりせよみみらくの島
と言ふを、兄人なる人聞きて、それに泣く泣く、
いづことか音のみ聞くみみらくの島隠れにし人を尋ねむ
蜻蛉日記より
みみらくの島とは、そこへ行くと死者に会えると信じられた島のことである。西方にあり、死者の姿が見え、声も聞こえるが、近づくとその姿は消える。
これは遣唐使船の日本最後の寄港地、三井楽の岬のことを指すと考えられている。三井楽は五島列島の福江島にある岬で、ここを出たならば今生の別れとなることを覚悟せねばならなかったことから、このような伝説が生まれたと考えられている。遣唐使廃止からわずか70年で、”何処とも知れないみみらくの島”となってしまったのは注目すべきだろう。
この一風変わった生死観は当時の西方浄土や補陀落浄土の概念と関連していると思われる。が、特定の土地で死者と出会えるというのは独特である。
現在、このような伝説も思想的背景も完全に忘れ去られているが、かつてはこれも日本人の一部だった。日本人の生死観は、決して歴史を通じて一定であった訳では無いのだ。
過去の某かを後世の人間が継承するという場合、それは過去の何かが押し付けるものではなく、あくまで後世の人間が恣意的に選択することによって継承されるのだということに注意が必要であると思う。
伝統とは、後の人間によって選び取られたものの連鎖だ。選択条件はその時代それぞれにおいて、常に変化した筈である。
伝統とは選択するものであり、生まれによって不可避なものでも押し付けられるものでもない。伝統の存在には今日的な理由が必ず存在するのだ。
■ ポーランドのコンピュータ開発史:その後 -2004年12月17日(金)20時46分
1960年にコンピュータを製造する専門企業Elwroが誕生した。Elwroはベストセラー機ODRAシリーズの最初の機種、ODRA-1001を同年リリースした。ODRA-1001は語長18ビットで2048ワードのメモリを持っていた。翌年にはODRA-1002がリリースされている。こちらは語長36ビットで4096ワードメモリ機である。しかしODRAシリーズの量産が始まるのは1963年のODRA-1003からである。ODRAはシリーズと一口に言っても、内実は脈絡無くバラバラのアーキテクチャの総称に過ぎない。
ワルシャワ技科大ではUMC-1という機種が開発されている。UMC-1のほうは1964年までに順調に25台が生産されている。
イギリスのElliott Brothers社のElliott 803が1962年に輸入されているが、バランスを取ったのか、同時にソ連からもUral-2が入ってきている。
Elliott 803の影響は大きかったらしく、1963年にリリースされたODRA-1003はElliott 803と同じ39ビット機である。この機種はポーランド最初の全トランジスタ機でもある。
1967年にはODRAは高性能機と低性能機を同時にリリースするファミリー展開を行う。しかし低性能機のODRA-1103は16ビット機、かたや高性能機のODRA-1204は24ビット機と、アーキテクチャは全く違うものだった。ODRA-1103は64台を生産して打ち切られたが、ODRA-1204は1972年までのべ179台が生産されるベストセラーとなった。
1967年になるとElwroはイギリスのICL社とライセンス契約を結び、ICL1900互換機であるODRA-1304をリリースした。ODRA-1304は1970年から90台が生産され、1973年には同じアーキテクチャの改良型ODRA-1305とODRA-1325がリリースされた。これら2機種は1989年までに計500台が生産された。
一方、東欧圏では1968年からES、共通システムコンピュータ開発計画が始まっていた。ポーランドも当初から参加し、ElwroはES-1030タイプ、R-30を生産した。一方でODRAシリーズの生産を継続したし、更に小型のK-202、MOMIK 8B、そしてMERAシリーズといったミニコンピュータの開発、生産も行なっている。
1975年にはESアーキテクチャ機R-32がリリースされたが、これはソ連で該当機の存在しない機種である。以後ポーランドはESシリーズ開発から遠ざかることとなる。
同年にリリースされたMera-400は16ビット機である。おそらくこれはソ連のSM-3互換機である。1979年にリリースされたMera-60はソ連製マイクロプロセッサSM-60を使用したものと思われる。1981年にはSM-4の生産も開始した。
1983年にポーランド最初のPCスケール機、Elwro-500がリリースされた。Elwro-500はRAM48キロバイトの8ビット機で、おそらくソ連製8080クローンチップを採用したものと思われる。1986年にリリースされたElwro-800は16ビット機である。そして同時にElwro-800 Jrという機種もリリースされた。
Elwro-800 JrはシンクレアZX Spectrumクローンである。外観が印象的なこの機種についてはシンクレアクローンに詳しいサイトなどを参照されたし。
この記事を書くに当たって以下のサイトを参考にしました。
History of Computing in Poland
On the Beginnings of Computer Development i n Poland
Jakie komputery produkowano w Polsce?
Computer history#Computer history in Poland
Elwro 800 Juniorについては以下のサイトを。
Old-Computer.com :E>Elwro>800 junior
……ポーランドというと、あとは逆ポーランド記法ですが、これまた奥深いです。二次大戦前のポーランドには論理学の黄金時代があったのですね。そして戦争とナチス。ウラムやバナッハとタルスキのその後なんて、もう。彼らはポーランド系ユダヤ人だったのです。
■ ポーランドのコンピュータ開発史:逆二進数コンピュータ -2004年12月16日(木)18時57分
ポーランドでは1950年代のうちにSKRZAT 1と BINEG というコンピュータが作られている。これらは逆二進数で動作した。
逆二進数とは、-2を基数とした数である。要するに-2の桁乗で割って桁上がり、なのだが、すぐに気が付くと思うが-2の2乗は4で3乗は-8、符号がコロコロと変わる。
ちょっと10進数を逆二進数で表してみよう。
十進 逆二進
0 => 0
1 => 1
ここまでは良い。しかし、
2 => 110
これは一体どういう事であろうか。これは多項式にしてみると判りやすい。
2 = 1x(-22) + 1x(-21) + 0x(-20)
つまり4ひく2で2なのである。だから、
3 => 111
4 => 100
5 => 101
となる。負数は、
-1 => 11
-2 => 10
-3 => 1101
表現桁がふた桁づつ増えるのに慣れなければならない。正負は桁数で見分ける事ができる。
逆二進数表現では負数を表現するのに符号ビットや2の補数表現は必要ない。これが逆二進数の利点になるだろうか。
ポーランドのコンピュータに興味を持ったのは、Knuth#2の中に記述があったからである。但し、それ以上の内容は見つけることができなかった。
■ ポーランドのコンピュータ開発史:初期 -2004年12月15日(水)23時40分
どうやら、同人誌”ソヴィエト・ロシア・ウクライナのコンピュータ”入稿したとの事。ついでなので、書きそびれた諸々から東欧のコンピュータ、今回はポーランドを。
-------------------------------------------------------------------
ポーランドにおけるコンピュータ開発は1948年にワルシャワで始まった。
ポーランドのディジタル技術は戦時中のボンベ、エニグマ暗号解読器の開発で知られるように高い水準を持っていたが、戦後の混乱と疲弊はコンピュータ開発にも暗い影を落とした。
ワルシャワの数学研究所内に設立されたGAM(Grupa Aparatow Matematycznych)がコンピュータ開発を担ったが、最初の二年は専用の施設を持っていなかった。1953年に組織は拡充され、オスカー・ランゲら経済学者とも交流を深めながら、十数名のメンバーは本格的なコンピュータ開発を開始した。
1954年に彼らはまず微分方程式計算専用機ARRを開発した。ARRは400個の真空管から構成されていたがプログラマブルではなく、ハードワイヤな固定ループの途中の係数をリアルタイムに変更することが可能なものだった。
ポーランド最初のコンピュータXYZは1958年に完成した。開発開始から実に10年が経過していた訳だが、その間彼らはEMAL (Elektryczna Maszyna Automatycznie Licząca)というコンピュータを開発していた。しかし1956年に方針は変更され、IBM701の設計を手本として新しいアーキテクチャを採用したのである。論理素子はソ連のBESMのものをベースとしたが、メモリは超音波遅延メモリを採用している。性能は毎秒800命令というものだった。
XYZはポーランドの産業界全体に自信を与えた。XYZはZAM-2としてコアメモリを採用した改良型が量産されることとなった。1960年にはこれらで動作するFORTRAN"SAKO" (System Automatycznego Kodowania)がポーランド人の手で製作されている。
-------------------------------------------------------
次は逆二進数コンピュータSKRZAT 1と BINEGを。
■ MAD: MPEG Audio Decoder -2004年12月3日(金)21時26分
なんだかVS1001チップ目当てに検索かけて訪れる方が多い様子なので、コレを紹介しときます。
MADは、MP3ファイルを整数演算のみでデコードする高精度デコーダーです。
現在の案としては、ターゲットボードはFOX。SH7708Sの代わりにSH7708Rを載せ、96MHzで動かします。最も簡単なやりかたとしては、ある程度以上のサイズのコンパクトフラッシュに二つパーティーションを切り、片方にNetBSD一式、もう片方にFATファイルシステムをのせ、FAT側にmp3データを置くようにし、MADはNetBSD上で動かします。
PCMオーディオデバイスを作らなければなりませんが、どうせCPLD(XCR3128XL)を載せる予定なので、そこで実現します。内部ゲート全部バッファにして、外部に抵抗でD/A変換を作ってOPアンプを駆動するのが王道ですが、PWMというのも乙でせう。
システムが贅沢過ぎるなら、eCOSへの移植を試してみたい。どうせPOSIXが要るし。
■ ソ連のネットワーク対応MSX -2004年12月1日(水)00時28分
旧ソ連のMSX事情について色々巡っていると、MSX hardware Infoに、資料が追加されているのに気が付きました。
まとめてみます。
1985年以降、ソ連では学校教育にMSXコンピュータが導入された。
特に導入台数が多かったのがヤマハの機種、YIS503IIとYIS503IIIだった。ヤマハからはもう一機種、YIS805が導入されているが、数が全然違うようである。導入台数の全容は諸説在るが、最大で合計15000台、最小で4000台という。YIS503IIIが7000台という記述も見かけた事がある。
MSXはココム規制に引っかからないオープン規格の8ビット機で、多国語化が極めて容易だった。何しろアラビア文字に対応した数少ない8ビットマイコンである。
なぜYIS503シリーズが採用されたのかは不明だが、この機種はビデオ出力が別基板となっていて、SECAM-Rビデオ規格に対応させる事が容易だったからかも知れない。
YIS503IIはYIS503のRAMを64キロバイトにしたMSX機だが、YIS503IIIはMSX2規格機である。ソ連に導入された機種は更に手が加わったもので、名前の最後にRを付けて区別している。
YIS503IIRは基本的に、ビデオ出力を対応させただけの様であるが、YIS503IIIRは大幅に違っていた。
YIS503IIIRではフロッピードライブが省略された代わりに、ネットワーク機能を持っていた。これは学校での利用形態にあわせたもので、最大16台まで接続が可能だった。
16台のうち1台は必ず教師のものとなり、残りが生徒の利用機となる。内蔵されたネットワークインタフェイスはUARTとして8251を、ボーレートジェネレータとして8253を載せ、オペアンプで信号を駆動していた。非同期シリアルなので最大19200bpsまでしか出ない筈である。ネットワークの接続形態はディジーチェーンだった。
ソフトウェア的には、ネットワークBIOSとCP/MがROMに搭載されていた。ネットワーク機能はこのCP/Mのコマンドとして実装されていた。
YIS805のソ連版、YIS805/128 R2も同様にネットワークに対応していた。この機種ではCP/Mの代わりにBDOSというものが搭載されていたようである。
……教育へのコンピュータの導入、極めてよく考えてやっていたのですね。
■ ロボットの定義 -2004年11月29日(月)01時38分
ロボットの定義についてちょっと考えてみた。
自分の定義は、I/Oを持つ無限ループ、というもの。終了する事を意図しないプログラムです。そういう意味で言うと、サーバはロボット、でもアイボはロボットなのかちょっと疑問です。
しかし、終了しない、というのは停止問題的にはどうなんでしょう。終了しないと判っているなら、チューリングマシンじゃありません。
しかし人間はいつか停止するし、ロボットもそうでしょう。……でもまぁ、神はチューリングマシンではないことははっきりしています。
-------------------------------------------------------------------------
なんか出せそうなので告知いたします。
コミックマーケット67(有明・東京国際展示場)12月30日(木)西ふ-10b『風虎通信』にて、ソヴィエトのコンピュータ本こと「ソヴィエト・ロシア・ウクライナのコンピュータ -技術とその歴史・思想-(仮)」を頒布致します。
内容ですが……
レジスタが無かったソ連最初の量産機STRELA、12台のコンピュータがモスクワをぐるりと取り囲むリングネットワークで接続されていた対核防空システム"A"、磁気素子の三値論理コンピュータSETUN、1968年に1MFLOPSの能力を持っていたBESM-6、LispとPrologの合いの子のような言語Refal、1967年にUnix風の設計を採用していたOS IPM、マトリックス演算処理と専用言語で自動推論を実装したMIR、ソ連全土に二万台のコンピュータを結ぶネットワークを構築しようとしたオーガス計画、放射能割り込み付きの核戦争用コンピュータArgon-17、アプリケーションに合わせて命令や語長を削り込むPOISKアーキテクチャ、コードモーフィングでBESM-6のプログラムを走らせたスーパーコンピュータElbrus、などなど、かなり密度の高い内容になったと思っています。
■ BESM-6エミュレータについて -2004年11月19日(金)23時51分
BESM-6 Nostalgia PageにあるエミュレータのソースはCygwinでコンパイル可能である。
忘れないうちにメモしておく。
適切にファイルを解凍し終えると、vsix-2.0というフォルダと、その下にdiskdirとtestsというフォルダができる。diskdirにはディスクイメージが、testsにはスクリプトが展開される。実行前に、diskdirの下に更にibufというフォルダを掘っておかなくてはならない。
スクリプトは独特のもので、koi-8rで書かれており、コンパイル後にできる実行ファイルvsinputで処理されて、中間ファイルをibufに吐き出す。
この中間ファイルを、エミュレータ本体であるvsixが受け取って動作する事になる。
ソースコードにはまずrcsを適用してやらなければならない。ソースの下にRCSというフォルダがちゃんと掘られているなら、ソースのフォルダでcoを実行する。面倒だからco *で片っ端から適用した。
その後、ソースに含まれるulong,ushort,ucharという変数宣言を片っ端からunsigned long,unsigned short,unsigned charに書き換えてやる。ソースのコメントやメッセージは例によってkoi-8rなので、これを損なわないように注意しなければならない。
コンパイルに成功すると、dpout.exe,imgtodisk.exe,vsinput.exe,vsis.exe,zdump.exeといった実行ファイルが出来上がる。これをvsix-2.0のフォルダにコピーして、動かす事になる。
cygwin上で動かす場合は、実行ファイルの拡張子を削って、cシェルであるrunをつかってスクリプトを渡してやることになる。例えば
$ run whet
whetはウェットストーンである、と思われる。
windowsのコンソールで動かす場合は、cygwin1.dllをパスの通った場所において、適当なバッチファイルなどで、vsimputにスクリプトを食わせて、出来たファイルをvsixに食わせてやればいい。
エラーメッセージなどはkoi-8rで出る。確認したければファイルに書き出してブラウザで見る、等といった方法が使えると思う。
問題は、まだちゃんと動かないこと。diskdirに一時ファイルを作ろうとして、何故かパーミッシンが無いとメッセージを吐いて止まってしまう。該当個所のソースを少し弄ってみたりもしたが、まだうまくいっていない。
最終的には、メッセージが楽に読めるようにしたい。方法としては二つあると思われる。ひとつはプログラムを改造して、UCS-16を吐かせるようにするというもの。面倒そうである。もう一つは、出力に他のプログラムを噛ませて、メッセージを読めるようにするというもの。こっちは遥かに楽である。
■ ソ連のシャトル機の歴史 -2004年11月18日(木)21時33分
ソ連のシャトル機開発の歴史は、1954年から57年にかけて開発されたラムジェット巡航ミサイル"ブラン"(Буран)の副産物として始まる。当時ミヤシシチェフの設計局OKB-23は、ライバルのラボーチキン設計局の"ブーリャ"と開発競争を続けていたが、結局この競争は、コロリョフの設計局OKB-1がR-7ICBMを1957年に開発してケリがついてしまう。
この開発の副産物として、グラファイトやニオブ合金、セラミックタイルを用いた耐熱材料、超超音速飛翔体の空力学的特性などの知見を得たOKB-23は小型のスペースプレーンを研究した。このページの中段にあるものは曲線が多いデザインだが、直線のみで構成された鋭角なデザインも多かった。これらデザインをOKB-1に提供したのだが、おまけとして提供した、自転車のライトのような鈍頭の揚力再突入カプセルのデザインが、OKB-1の有人宇宙船開発者の心にヒットしてしまう。こうしてソユーズ宇宙船の再突入カプセルのデザインは生まれた訳である。
1950年代には他にもチェロメイのものやOKB-52のものなどさまざまな提案がなされたが、実際の開発には結びついていない。
1960年代初頭に、今度はミグ設計局がスペースプレーンに興味を持ち、新たな計画"スパイラル"(Спираль)(もしくは50-50)の開発を始めた。こちらはラボーチキンのブーリャの流れを汲んだ技術が用いられていた。
スパイラルは三段式で、一段目はオービターをピギーバックした大型の超音速ターボラムジェット機で、二段目は使い捨ての液体燃料ロケット、その先端に小型の再利用型有翼オービターが位置していた。全体像については、よくできたイメージムービーがこちらにある。
プロジェクトは1965年に正式に始まり、しかし1969年には中止されてしまう。Tu-144超音速旅客機開発にリソースを割くためである。またプロジェクトは非現実的だという批判にもさらされていた。
1974年にロケットエンジン屋の大物であったグルシコがOKB-1を、そして実効的にソ連の宇宙開発を支配するようになり、彼の肝いりでスパイラル計画は再開された。
グルシコはコロリョフと並ぶ、ソ連宇宙開発史上の大物である。この両雄は古い友人であり、盟友であり、そして仇敵であった。彼らの関係を書きはじめると一大叙事詩になってしまうので割愛するが、当時既にコロリョフは亡く、この先15年に渡って彼の支配が続く事になる。
1976年に有人の滑空試験機Mig105が完成し、1978年まで飛行試験を行なった。Tu-95K爆撃機に吊るされたMig105は高度5キロで切り離され、滑空して着陸した。
再突入試験はオービターの二分の一モデル機"BOR-4"を使って行われた。ちなみにBor-1から3は、開発中断期間の前に打ち上げられていた試験用弾道飛行体である。
Bor-4はスラスターを装備したかなり本格的なモデルで、1機が製作されて1982年から1984年までの間に四回軌道飛行を行なった。最初の二回はインド用に着水して回収され、残り二回は黒海に着水して回収された。
しかし実際のところ、1976年には米シャトルのコピーをすることに政府は決定していた。決め手となったのは軍の要求で、20トンの打ち上げ能力と軌道上の物体の回収能力は必須とされていた。
実際には、開発が本格化するのはアメリカのシャトルが打ち上げられた後の事である。
Bor-4は断熱材料と機体特性に関するデータ収集に用いられ、次にBor-5が製作され、打ち上げられた。Bor-5はブランオービターの八分の一スケールの模型で、1984年から88年にかけて5回弾道飛行を行なった。
これを開発したのはグルシコによって1975年に設立されたOKB"ブラン"(Буран)である。これは名前から判るとおりOKB-23を母体とした組織で、更にミグ設計局からスパイラル計画に関わる人材を移籍して構成された。しかし実際にはミグ設計局の影響が支配的だったようである。
Bor-5を見れば判るとおり、ブランは米シャトルのあからさまなコピーである。但し、これは外見だけのコピーであり、構成技術はほとんど違っている。外見上はオプションのジェットエンジン(これは後に取り払われた)くらいしか一見して違う部分が無いが、打ち上げシステムとして主エンジンを内蔵して再使用する、再使用打ち上げシステムの一部としての米シャトルと、打ち上げシステムを再使用するつもりが全く無いブランとでは、システムの意味が全く違う。
ブランは再使用打ち上げ機ではなく、実際のところ再使用する旨みはほとんど無い。しかし、このように米シャトルの外見を真似て悦に入る風潮はソ連に限らず、ヨーロッパのヘルメスや日本のHOPEなどでも見られた現象である。これらシャトルもどきは使い捨てロケットのフェアリングを再使用可能にしたものに過ぎない。
そしてシャトル信仰は、ソ連で外見だけの忠実なコピーとして、ここに極まって現れたのである。
ブランの機体デザインは、特に内部で相違は顕著である。機体フレームと表層断熱材との間の構造はシャトルとはかなり違う。また表面のタイルも見た目より可撓性がある。
有人機として見た場合も、ブランとシャトルはかなり違う。シャトルは離床後ある程度高度と速度を稼がないと、ミッションを断念しても滑空して安全に帰還できない。しかもそれまでの間に何らかの事故が起こると、シャトルでは乗員は助からない。
ブランでは、ミグご自慢のゼロ/ゼロ射出座席が、乗員をゼロ高度からマッハ3まで安全に脱出される。また、何らかの事故が起きた場合、主エンジンを内蔵しないブランは安全にオービターをロケットから切り離せる可能性が高い。
実のところ一番近いのはコンピュータかもしれない。0.37MIPSの32bitマシンで、この頃のソ連組込みコンピュータは設計の源流を辿るとES、つまりIBM360に行き着く。アメリカのシャトル搭載計算機AP-101もIBM360起源だから、遠縁の親戚と呼ぶことができるかもしれない。
ブランの打ち上げ機エネルギヤは、史上最大級の打ち上げ機だった。この”100トンクラブ”のメンバーは、エネルギヤとサターンVしか存在しない。もしN-1が打ち上げに成功していればこのメンバーだったろう。シャトルは微妙な存在である。打ち上げ能力は100トンを超えるのだが、25トンしか軌道に投入できないのだ。
エネルギヤの射点はN-1ロケットの射点を再利用して建造された。そのために
エネルギヤの開発はブランより先行していた。初期のデザインはN-1に代わる機体として構想され、プロトンに似た外見で、"バルカン"と呼ばれていた。この構成要素をそのまま再構成してエネルギヤはデザインされた。
ブランはエネルギヤに適合させられたと見るのが妥当であろう。しかし、ブラン計画が無ければ、エネルギヤも存在しなかった筈である。
エネルギヤの一段目は横に四本付いたストラップオンブースターである。これはケロシンエンジンRD-170、燃焼室とノズルは4基あるがターボポンプを共有しているために1基と計算されるエンジンを採用していた。このエンジンは、ケロシンエンジンを訳も無く嫌っていたグルシコが、改心して作り上げた傑作であり、現在でもZenitで使用されている。燃焼室2基のモデファイ版、RD-180はアトラスIIIや日本のGXなど、世界中で採用されるベストセラーとなった。
この一段目はパラシュートと軟着陸用ロケットで回収可能で、10回まで再使用を予定していた。
中央の二段目は液酸液水エンジンRD-0120を採用していた。これはシャトルSSMEに匹敵すると評された高性能エンジンだったが、使用されたのはこれっきりとなった。
ブランは実機の他に6機の実物大模型が制作された。最初の機体はペイロードベイのデザインに利用され、その後輸送機VM-Tとの適合性試験に用いられた。
二番目の機体は滑空及び着陸試験に用いられた。この機体は4基のターボジェットエンジンを搭載し、独力で離陸することができた。この機体は有人で飛ばされたが、無人着陸のテストにも用いられた。
三番目の機体は更に技術的詳細を詰めるために用いられ、特にエネルギヤとの適合性検証に用いられた。
その他の機体はそれぞれ電気試験用、構造試験用、熱真空試験用のものである。
現在フライトモデルを含むそれらの機体がどこにあるかは、こちらのページに詳しい。
エネルギヤは1987年に初めて打ち上げられた。打ち上げは成功したが、ペイロードであるポリウスの軌道投入に失敗した。当時既にゴルバチョフが改革を推し進めている世相のなか、ソ連宇宙開発の軸足は軍中心のエネルギヤ−ブランから民生のミール宇宙ステーションへと変わりつつあった。この失敗は変化を更に決定的なものとした。
1988年にブランは初飛行を果たした。同時にこれはエネルギヤの二回目、そして最後の打ち上げだった。打ち上げは完全な成功だったが、ソ連の宇宙計画にもうブランの居場所は無かった。かろうじてエネルギヤだけは、米ソ合同の有人火星探査の呼びかけに希望を繋いでいたが、1991年のソ連崩壊と、1993年の公式の計画中止により、その可能性も消えてなくなった。
変り種としては1990年代初めに検討されたエネルギヤ-Mがある。あまりにも巨大なエネルギヤの構成要素を商業衛星打ち上げ向きにアレンジしたものだが、ソ連崩壊に伴うウクライナとの関係の変化に伴い、一段目要素がウクライナ製であることから構想は崩壊した。
ゼニットは既に存在していたので生産は続いたが、ロシアのエネルギヤ社はソユーズ打ち上げ機に、ウクライナのフルニチェフ社はプロトンと後継のアンガラ打ち上げ機にと、絶縁の動きは続いている。
更に変り種、キワモノが、このページの上半分に集まっている。ま、下半分もキワモノには違いない。
スペースプレーン、シャトル機の歴史は夢と幻想の歴史でもあるのだ。
■ 二枚挿しへの挑戦と敗北 -2004年11月17日(水)23時11分
ちょいと症例をメモとして書いておく。
里子に出していたMTV2000が帰ってきたので、現用のMTVX2004との二枚挿しができないかと検討してみる。できれば今日、プラネテスとガンダム(千葉テレビで初代が再放送中)がカチ合うのにあわせたい。
ちょうど二枚挿しに対応した新しいユーティリティ(FEATHER v6.20)が出ている事を知る。しかしコレ、雑誌付録にしか付いて来ないと言うおかしな代物。とりあえず日経WinPC 12月号を購入。
まずドライバをインストール、その後MTV2000を挿す。使わないオンボードデバイスを片っ端から外す。シリアルポートもパラレルポートも殺す。
しかし、これまで順調に動いてきたMTVX2004が動かない。オーバーレイは動作するのだが、録画しようとすると"DMAチャンネルが不正です(18)"などというエラーを吐く。ちなみにMTV2000は問題なく動作した。
その後、カードの挿す位置を変え、ドライバを再インストールし、もう一度ユーティリティーを丸ごとインストールしてみたりした。最後のやつをやるとFEATHERの起動に10秒程度かかるようになった。また、MTVX2004は全く動かなくなった。ちなみにソフトウェア圧縮のオプションを選ぶと確実に死ぬ。
FEATHERの番組予約にはバグが散見するようになった。午前0時00分録画開始の予約がうまくいかなくなるようである。
しかたないので、動くMTV2000を利用するように予約設定を変え、とりあえず今日の所は放置する事にする。……MTV2000に戻してしまうのも良いかも知れない。とにかく明日には元の一枚挿しに戻そう。ソフトウェアもアンイストールを試す事になる。
しかし、久しぶりに読んだPC雑誌、えらく雑な記事ばかりだな……
■ 日本人のおこなう決定が、感情論に堕ちる理由 -2004年11月4日(木)23時40分
今日の日本においては、なんらかの決定を行なう場合、決定に関わる者が多くなればなるほど、感情によって物事が左右されるようになる。
誰かの感情に触れる危険は、関連する人間が増えれば増えるほど増大するのであるから、これはある意味で合理性がある。しかし、関連者は判断において合理性を考慮しない。いや、もしかすると、ある事象一つに対して考慮する時間が極めて短いために、決定が感情を基準としたものに近くなっているだけなのかも知れない。
この現象は、”合理的価値基準を持ち込めない”と言った方が良いかもしれない。例えばマスコミに報じられる可能性があるだけで、まるで波動関数が収束するように決定方式は感情ベースに移行してしまう。
これは要するに、合理的な判断についての説明を関連者に行なうコストが高く付き過ぎるために、合理的決定を放棄せざるを得なくなってしまうのだ。
参加者が少なく、持っている知識も見当がつくようなら、説明のコストはそれほどでも無い。しかし、対象者の大半に、中学の理科から大学の教養課程に至る内容を駆け足で理解できるように説明せねばならないとしたら、担当者は絶望と共に合理的決定を放棄するだろう。
この現象は、成熟した民主主義が、ただの感情論で決定を行なうようになる理由の説明になる。参加者が多くなればなるほど、決定は馬鹿げたものになるだろう。
この問題への対処法は、大きく分けて三つあると思われる。
一つは、賢人が決定を行ない、凡人に口を差し挟ませない、という方法である。フィクションではよくあるタイプの話だが、実際には、自分を神のごとく賢いと思い込んだ愚か者たちが権力機構の中に巣食うだけになりがちである。
二つ目は、万人により高度な教育を行なう事である。よく物事を知っているなら、例え脊髄反射でも合理的判断に近い解を示せるだろう。この方針が最も望ましく、努力すべき目標であるが、実際には、例え全力を尽くしたとしても満足すべき水準に達する事は無いだろう。
三つ目は、直接的な利害関係者以外を決定の場から排除する、というものである。参加者全員が愚か者なら、愚かな決定しかできないが、相手が少なければ、感情に反する決定でも説明によって合意にたどり着く可能性は格段に高くなる。勿論、粘り強く説明すると言う意思が存在しなければならないが。
このような場をどうやって作り、維持し、運用すればいいのかは判らない。しかし、これは現実的なコストで可能な選択肢であり、将来的には可能になるのではないかと言う期待を持ちたい。
■ ソ連の独自コンピュータ技術の衰退 -2004年10月31日(日)00時50分
ソ連はかつて高度な独自のコンピュータ技術を持っていたが、1960年代後期に技術の進歩は停滞し、それ以後連邦崩壊まで、西側に対して7年といわれる技術水準の遅れを生じた。
原因は、簡単に言ってしまえば、ソフトウェア工学に対するイデオロギー的な弾圧と、それによりソフトウェア不足が深刻化した時期に、西側ブランドのコピーによってソフトウェアもコピーしようとした安易な政策による、独自ハードウェア技術の切り捨てによるものである。
当時、政策担当者は正しい選択をしたつもりだった。ソフトウェア不足は現実の問題であり、彼らはほとんど習慣として自国製品を信じていなかった。しかし、結果は悲惨なものとなったのである。
以下に更に細かい経緯を整理する。
1960年代に入って、コンピュータの需要増大は著しいものがあったが供給は必ずしも間に合っているとは言えなかった。また、ハードウェアの要素技術、特に部品の信頼性の低さは進歩的なアーキテクチャを持ってしても性能の足かせとなっていた。
しかし何より、ソフトウェアの不足が最大の問題となっていた。
原因はサイバネティクスに対する弾圧だった。ソ連では、計算機科学、ソフトウェア工学、制御工学、神経医学、計量経済学、全てがサイバネティクスとひとくくりにされていた。
ソ連の科学者たちはサイバネティクスという概念に夢中になっていた。サイバネティクスは分野を融合する学際的概念であり、才能に富んだ天才たちが幅広い成果を生み出すことになる。
線形システムの安定性、つまりカオスについての研究で知られる大数学者A.M.Lyapunovの血筋にあたるA.A.Lyapunovはソ連最初のコンピュータ言語の体系を設計したが、同時に地球物理学の大家でもあった。
国家経済の自動化のための巨大コンピュータネットワークOGASを提案したGlushkovは元々核物理学者だったが、GUIと”脳に似せた”特殊な(Matrix演算向きに最適化された)アーキテクチャと専用言語を持つ特異なコンピュータ、Mirシリーズを作った。
Kantorovichは線形計画法の国際的権威だがやはり独自のコンピュータ言語PRORABを作っている。彼は1975年にノーベル経済学賞を受賞した。
だが、サイバネティクスには唯物論に反しているという批判が付きまとった。共産主義はマルクスの資本論を丸ごと鵜呑みにして構成されたものであり、資本論の思想の中心には唯物論があった。が、当のサイバネティクスの提唱者、ノーバート・ウィーナー本人が自著で唯物論を攻撃していたのだ。
ウィーナーの「サイバネティクス」は発禁になった。1953年の「哲学の問題」誌に掲載された”サイバネティクスは誰に奉仕するのか?”という論文は、激しい調子でサイバネティクスを批判した。
「サイバネティクス理論は、幅広い種類の自然と社会的現象の本質の尊重を抜きにして現代コンピュータの原則を当てはめようとしている。そこでは機械信仰は理想主義に変質している。それは、一方的で誇張された認識論の特定の特徴を持っている……
……帝国主義者は、資本主義社会を襲っている矛盾を解決し、接近している容赦のない経済的な危機を防ぐことができない。 彼らは、狂った軍事拡張だけでなく空論の武器にもすがって救済を求めている。彼らは絶望のあまり、疑似科学の助けに縋ろうとしているのだ」
1954年に出版された「簡潔な哲学辞典」の第4版では、サイバネティクスはこう表現されていた。
「この反動的な疑似科学は、第二次大戦後のアメリカで最初に現れ、他の資本主義国に拡がった、一種の機械信仰である」
当時のソ連では、こういう事態は日常茶飯事であった。遺伝学にはルイセンコ学派という本物の疑似科学がはびこり、正当な科学を疑似科学呼ばわりしていた。相対性理論ですら、唯物論に反するという理由で疑似科学と決め付ける者が居た。
科学者たちは粘り強く戦いつづけた。Lyapunovはモスクワ大学でセミナーを開設し、サイバネティクスの書籍を発行し続けた。また、遺伝学者N.V. Timofeev-Ressovskyと友情を育んだ。
1961年、Lyapunovの研究所がモスクワに開設される予定であったが、それは実現せず、彼はシベリアのノボシビルスクに研究所を開設することになった。
ソ連のサイバネティクス科学者は言動に多大な注意を払うようになる。相互交流などは攻撃の格好の種を提供する事に繋がりかねなかった。1960年にKantorovichのもとを訪れた西側の学者は対応の冷たさ、よそよそしさに戸惑った。
彼らは地道に反論を続け、1970年代半ばには一応の勝利を見るのだが、その時には既に何もかもが手遅れになっていた。
それでも、ソ連サイバネティクスの成果は存在していた。60年代終わりには独自OSや言語、アプリケーションが生み出されていた。が、例えばソ連最初のOS、OS-IPMはUNIXに良く似た特徴を持っていたが、軍事プロジェクト用に開発されたために、ごく最近までその存在は知られていなかった。ソ連のプログラマー達は、永いことソ連最初のOSは1968年に開発されたDispacher-68だと信じていたのである。ちなみにDipacher-68はどちらかというとVMS風であるらしい。
ソ連の指導者たちは、コンピュータのハードウェアに品質の問題が、ソフトウェアにバリエーションの欠如の問題があるのは認識していた。そういう場合、彼らの常套手段は西側製品のコピーと決まっていた。
そっくりにコピーすれば同じ物が手に入る、というのは幻想である。まず開発者によるサポートが存在せず、将来の方針もオリジナルの様子を伺いながらとなる。それに要素技術、品質の問題も付きまとう。実際には丸ごとコピーするのは不可能である。
進んだ製品のコピーというのは、技術開発の初期においては、その倫理的是非を問わなければ非常に有効である。実際日本でも、戦後1950年代には盛んに国策でのコピーが行なわれていた。国費でコンピュータや工作機械を輸入し、民間企業で手分けして分解調査し、その結果を持ち寄るといったことがごく普通に行なわれていた。しかし、一定以上の技術力を持っているなら話は別である。
当然、ソ連コンピュータ開発の指導者たちは反対した。しかし、時流が奇妙な具合に働いた。
1970年代の米ソ雪解けの流れは、コンピュータの世界にも国際交流の機運を盛り上げた。Glushkovとコンピュータ設計者Rameyevは、ヨーロッパ各国が協力して開発する、新しいコンピュータ"ES"の提案を行なった。この提案は無線工業大臣М. К. Сулим(Sulim)によって強力に推進される事となった。
SuIimは戦争中は諜報部に所属していたが、戦後SKB-425でRameyevの下でコンピュータ開発に携わり、その後Ledebevの元でM-20コンピュータのサブアーキテクトを勤めた。
その後委員会活動に関わるようになり、1965年に無線工業省の大臣となる。Sulimは典型的なテクノクラートである。彼は国際協力と技術導入を推進すべく、ES開発プロジェクトにおいてイギリスの企業ICL社との関係を取り持った。
これが、いつのまにかIBM360シリーズのコピーを作る計画になってしまった。ESコンピュータは、現実的な政策判断として、東側のいわゆるコメコン諸国による共同開発という事になった。ICL社と西ドイツのシーメンス社の協力の下にIBM360シリーズの仕様と技術資料が取り寄せられた。東ドイツは既に走り始めていた。
国際協力の美名の下、IBM360コピー計画は反対者を押さえ込み、強行された。IBMをコピーすれば、IBM用のソフトウェアも手に入る。これは政策決定者たちにとって非常に魅力的だった。
1年に渡る議論と交渉の末に、1970年のSulimの公式文書署名によって計画は正式に始まった。心労により健康を害していたSulimは直後に大臣を辞任し、その三ヵ月後に死んだ。Rameyevはコンピュータ開発の世界から引退した。
国家計画の予算配分においては、切り捨てられたものは確実に終焉を迎える。軍事用途以外のコンピュータアーキテクチャ研究は、研究室レベルにまで退行した。独自アーキテクチャによる新規の民生用コンピュータの生産は許可されなくなった。
こうして、ソ連の独自コンピュータ技術は滅びたのである。
■ テレメトリ/コマンド体系 #1 -2004年10月28日(木)23時54分
暫く考えていた事柄を、考えを纏めるためにつらつらと書いてみる。
自律機械、ロボットを動かすためには命令が必要である。また、ロボットが遠隔地にいる場合などは、状況の報告、いわゆるテレメトリが必要である。また、内部状態などを知るためにもテレメトリは必須であろう。
つまり、ロボットと人間のインタフェイスとしてテレメトリとコマンドは必ず存在する。これらは情報であり、その形態は物理的手段によって左右される事が少ない。
現在、テレメトリとコマンドの標準フォーマットというものは存在しない。人工衛星においてはCCSDSという標準規格が存在し、これは他のロボットにも適用可能であるため、広く普及すべきだと思われるが、規格の必要性、いや、テレメトリとコマンドをどのようにすべきか、まだ誰も考えていないというのが現状であるらしい。
テレメトリとコマンド(以後テレコマと略す)は、自然言語のように対等で対称的な情報のやり取りでも、コンピュータ言語のような命令だけの著しい非対称な情報のやり取りでも無い。テレコマはこれら二つの中間の性質を持つ。すなわち、双方向的だが、命令は必ず片方が行なう、非対称的な情報のやりとりを行う。
テレコマには持つことが望ましい幾つかの性質がある。
1:命令が誤った解釈をされにくいこと。
2:テレメトリは状況を過不足無く伝える事ができること。
3:解釈が容易である事。
4:高度な命令が可能であること。
5:コンパクトかつ伝送エラーに強いこと
テレコマは貧弱な伝送路でも十分に使用可能で、豊かな表現能力を持つべきである。そのためには伝送単位は可変長でコマンドはプログラム言語の性質を持ち、テレメトリは構造化記述が可能である事が望ましいだろう。そして強い誤り訂正能力を持つべきである。
但し、コマンドはプログラム言語そのまま、というのは望ましくない。特に通信エラーによる欠落を補えなかった場合に、その欠落が致命的なものになることは絶対に防がねばならない。
対処の一つとして、コマンドの文脈依存の度合いをなるべく軽減する、というのが挙げられる。
現在のロボットに対するコマンドの多くは、受信即時実行、というものが大半で、その他の条件指定としては、時刻指定がある程度である。しかし、コマンドの実行に柔軟性を持たせたければ、様々な条件指定が可能である事が望ましい。またこれは、条件の再定義や追加定義ができると良いだろう。
しかし、多彩な条件定義は、命令に条件情報を追加する事に繋がり、これはコマンドをコンパクトに保つ事を難しくする。特に、条件の追加定義を可能とするフォーマットは、情報量を非常に食うであろうことが予測できる。
これを緩和するためには、コマンドの実行条件の局所性を利用すべきである。コマンドと次のコマンドの実行条件が全て違うような事は通常ありえない。大抵、一つか二つ、もしかすると全く同じ条件で、順序のみが必要だったりするかも知れない。そのような場合、必要なのは変わった条件の情報だけである。だからコマンドには前回の命令との条件の違いだけをパックして送信すればよい、筈である。
だがこれは前に述べたとおり、コマンドの欠落の可能性を考慮していない。従ってコマンドは、欠落に備えなければならない。具体的な手段についてはここでは述べない。
あと、考えておかねばならないのは、制御構文の実現であろう。
条件分岐については、コマンドの実行条件追加機能を生かせばよい事はすぐに思いつく。あとは、コマンドそのものの定義追加機能の実現だけである。
構造化は、コマンドの定義追加機能がその役割を担うだろう。コマンドを既存のコマンドの組み合わせで定義できるようになると便利だ。
考える必要があるのはループ構文である。ループをどこからどこまでと、どうやって指定すればいいのか。できればループは無しにしたい。通常の動作モードが無限ループであるロボットでは、明示的なループ指定が無くても、同様の機能が実現できると考えるのだが、どうだろうか。
これで大体、在るべきコマンドの姿が見えてきたのではないだろうか。
テレメトリについては、そのうち。
■ ソ連におけるコンピュータネットワークの推移 -2004年10月27日(水)23時08分
ソ連最初のローカルエリアネットワークは、1962年にJINR(合同原子核研究所)の三台のコンピュータを接続したものである。これらはそれぞれUral、M-20、Kievと、全くアーキテクチャの違う機種であったが、サイバネティクス学者Glushkovのプロジェクトの一環として、彼の開発したコンピュータKievと共に導入されたものであった。
三台のコンピュータは粒子加速器と分光計のデータ処理に用いられ、実験のデータ蓄積にも使用された。1965年にはもう一台のM-20が加わり、KievはGlushkovの新型、MINSK-2へとリプレースされた。GlushkovはここでOGASシステムに向けた技術を蓄積した。
1968年には4台のBESM-6が導入された。BESM-6は本格的なOSを走らせる事のできたソ連最初のコンピュータであり、ソ連のソフトウェア史において重要な意味を持つ。4台は0.5Mbpsの回線で接続され、リモートアクセスが可能だった。ケーブルは同軸ではなく、ツイストペアケーブルが使用された。
1960年代後期には、他の施設でもLAN敷設が行なわれるようになっていた。
ソ連におけるINTERNETに相当する、教育機関のためのコンピュータネットワーク、AKADEMSET'は、1970年代後期に誕生した。いつ誕生したのかはドキュメントが散逸しているらしく定かではない。公的な記録にその名前が確認できるのは1987年になってからである。
初期のサポートはサイバネティクス系の研究機関によって行なわれ、1980年代半ばにX.25標準をサポートし、IASNETと名称を変更した。ソ連全土の主要な都市にノードが置かれ、スイッチング用の専用マシンが設置された。専用マシンの実体は汎用機に8080クローンやZ80を使った専用拡張ボードを挿したもので、2チャンネル2400bpsの通信を処理した。システムは7階層のOSI参照モデルをサポートした。これらゲリラ的活動は当然ながら一般の電話回線を使用したものだった。
1986年にJINRはCERNとの接続を果たした。通信速度は9600bpsだった。
ソ連の軍事システムでは逆に退行が起こっていた。
1958年に運用を開始し、改善を加えられつづけてきたソ連の対弾道ミサイル防衛システムは、複数のコンピュータをネットワークで接続して分散したものだった。迎撃ミサイルは通常弾頭を搭載したV-1000である。
しかし、1971年に導入された新しいシステムA-35は、単一のコントロールの元に発射される、モスクワ周辺に配備された32基の迎撃核ミサイルから構成されていた。
恐らくこれは、当時コンピュータの小型化によって軍事用コンピュータの据え置き型から可搬型の単体高信頼性機への移行が進行していたが、これによりネットワークの必要性が感じられなくなった事が原因なのではないかと思われる。
■ プロジェクト・オーガス -2004年10月19日(火)22時30分
ОГАС(OGAS)はОбщегосударственной автоматизированной системы(National automated system)の略である。
このプロジェクトは1962から64年にかけてソ連の党中央で実際に提案、承認されたもので、当時第一副首相であったコスイギンの旗振りにより、国家経済のオートメーション制御を実現しようという壮大な計画である。
当時のソ連サイバネティクスの第一人者、V.M.GlushkovがまとめたOGASプランは、ソ連全土の産業中枢およそ200箇所にコンピュータを設置し、それらをネットワークで接続するというものであった。それら分散したコンピュータセンターにそれぞれ20台ほどの各組織のコンピュータが接続し、全体で4000台のコンピュータが接続する巨大なネットワークが構築される筈であった。最終的には接続されるコンピュータは20000台にも上るだろうことが予測された。
各地の生産量は自動的に集計、報告され、そして計画、調整されて即時性のある生産が行われる、そういう構想となっていた。正にコンピュータによる経済コントロール、計量経済学者の夢の実現である。
ソ連のネットワーク接続は、物理層については当時実用化されていた分散防空コンピュータ網によって確立していた。Glushkovはその上位に比較的簡単なプロトコルを考案した。
アイディアは1959年のA.I.Kitovのものを下敷きにしている。KitovはLyapunovと並ぶソ連サイバネティクスの先駆者で、経済の自動化というアイディアを実際に提案した。が、それが元で党を除名される結果となる。Glushkovは追放された立場のKitovを公然と支持し、コスイギンに働きかけたのである。
一度は議会での承認を経たOGASであったが、1964年、事態は急変する。フルシチョフ失脚である。計画の後ろ盾であるコスイギンは首相へと昇格したが、計画は保守的な官僚たちによって、官僚機構の迷宮の中で立ち往生することになる。この計画は国家を機械に売り渡すものだとみなされたのである。
そのうち、反計量経済学的な立場を置く経済学者たちによる攻撃が始まる。古典的なサイバネティクス攻撃に加え、「パンチカードがクレムリンを制御する」というような直接の攻撃、歪められた西側事情の分析によってコスイギンら党中央は混乱し、国防大臣ウスチノフを除けばOGAS支持者はいないという状況となってしまうのだった。
Glushkovはキエフへ戻るよう促され、彼は孤独に戦い続ける事になるが、時流が変わることは遂に無かった。Glushkovは1982年に死ぬ。それはソ連にパーソナルコンピュータが生まれる前年でもあった。
現在キエフには、Glushkovの名前を冠したサイバネティクス研究所が存在している。
--------------------------------------------------------------------
いやー、以前
「もしソ連のコンピュータ技術が進んでインターネットとか実現していたら」
とか、そういう与太話をしたことがありましたが、実際に計画があったとは。
どうもアメリカとかでは知られていないようで、情報が見つかるのはロシアとウクライナのサイトばかり。詳しく知りたい人は、ГлушковとОГАСで検索してみてください。
■ リアルタイムOS史追記 -2004年10月19日(火)22時17分
……ちゃんと読めば書いてありました。
RSXの優先度レベルは250段階に設定可能でした。256や255ではないことに注意が必要です。これは256よりも250のほうが多そうに見えるから、というマーケティング上の理由からだったそうな。
--------------------------------------------------
RSX-15のアーキテクチャの由来はDan Brevikによって詳しく語られている。
Brevikはロケットダインに勤務して、サターンVのF-1エンジン開発に関わったが、その時触ったのがBunker-Ramo社製RW-300、初期の半導体コンピュータである。この機種には割り込みは存在していなかった。次にThompson Ramo Wooldridge(TRW)製TRW-330を扱うが、この機種には多重割り込みが装備されていた。またウォッチドックタイマを装備していた。
その後ハネウェルに移って、そこでDDP-516を扱った。彼によればPDP-8に良く似ており、リアルタイム用途には向かなかったらしい。ここで彼はOLERTというプロジェクトに関わる。これはFORTRANのリアルタイム化の試みで、ここでコネクト/ディスコネクトファンクションが生まれた。OLERTはその後Samtranとなった。
リアルタイム化FORTRANというか、優先順位つきFORTRANはメジャーなものであるらしい。例えば原研で1974年に作られたGPL等の例が存在している。
Brevikは1969年にDECへと移籍した。RSX-15はPDP-15用にその年から1970年にかけて作られた。その後PDP-11用にRSX-11が作られることとなる。
1974年にマルチユーザー版のRSX-11Mがリリースされた。この開発には1971年にDECに入社したDavid Cutlerが関わっている。その後RSX-11Mはマルチプロセッサ対応も果たしている。
David Cutlerはその後VMSのメインアーキテクトとなり、やがてマイクロソフト社でWindowsNTを作る事になるのは皆さんご存知のとおり。
割り込みの歴史については、Selected Historical Computer Designsのこのページに詳しい。
ついでに、パイプライン技法の歴史についてはこちらのページに情報がある。
■ 極初期のリアルタイムOS -2004年10月18日(月)00時15分
訂正代わりに書いてみる。
リアルタイムOSの祖はRT-11よりもRSXの方だった、という内容です。
---------------------------------------
リアルタイムOSの起源は1969年の”リアルタイムFORTRAN”の試みに遡る。標準化委員会に出てきたこの話題に対して、別の解決法があるのではなかろうか、という考えからリアルタイムOSは生まれた。
DECは1971年にRSTSというOSを出す。これはリアルタイムOSを名乗ってはいたが、普通のタイムシェアリングOSであり、リアルタイム業務に売り込むための方便のようである。このOSはPDP-11用の汎用OSとして多くのユーザーを獲得した。
1973年の、PDP-11とPDP-15用のRSX-11/15こそ、現在のリアルタイムOSの起源である。
RSXは初めてタスクという用語を使用した。タスクは優先順位つきスケジューラでスケジューリングされた。この優先度は指定可能だが、何段階の指定が可能であるかは今ちょっと不明である。タスクとは別に、デバイスドライバに当たる割り込みブロックという存在があった。
RSXはセマフォやキューにあたるタスク間制御の機構を持たないが、割り込みブロックへの非同期通信と排他制御のための、コネクト/ディスコネクトというファンクションが用意されている。
RSX-11はデイスクオペレーティングシステムでもあり、プリント命令を標準で持っていたりする。
参考資料:
■ リアルタイムコンピュータシステム:世界史 -2004年10月17日(日)18時59分
コンピュータを刻一刻と変化する現況に対応させる、リアルタイムコンピューテイングの試みの起源は、1951年のWhirlwindに遡る。
アメリカMITで開発されたこのコンピュータには6800本の真空管とこの機種に初めて採用されたコアメモリを搭載していた。Whirlwindはソ連の核攻撃に対して高速に情報を収集、解析、行動する半自動防空システムの開発のために、空軍からの資金援助によって完成したものである。
ソ連では、1953年にИТМиВТによって同様の研究が開始され、1955年にДиана(Diana)-1とДиана-2という二台のコンピュータが開発されている。但し、こちらは最初からミサイルによる攻撃に対処する事を目的としており、そのために全自動化されていた。
Диана-1は目標を識別し、Диана-2がそれに対処するという、それぞれ違う目的を割り当てられており、二台で一つのシステムを構成していた。
翌1956年には半導体ベースの当時ソ連最高性能のコンピュータ、M-40によって実用システムの構築が開始され、1958年には運用にこぎつけている。このミサイル防衛システムは1961年には弾道ミサイルの迎撃実験に成功している。
M-40は割り込みをサポートしており、同時に5つのサイトからのテレメトリを受信することができた。テレメトリ回線は二重化されており、有線と無線の混在した最長200キロメートルの専用線によって構築されていた。テレメトリ信号は時分割されて、1Mbpsの速度を持っていた。
中央システムは数百キロの距離を越えて分散された12台のM-40を二重のトークンリングネットワークで接続して構成されていた。うち2台はアイドル状態で待機しているバックアップだった。残り10台が目標の識別とアンチミサイルの制御を別々に分担した。バックアップとの切り替えは数ミリ秒以内で行なわれた。
M-40に続いて浮動小数点をサポートしたM-50が開発され、1958年には毎秒20000命令の性能を持つコンピュータ、M-20が開発され、システムに投入された。M-20は後に若干のリファインの後にBESM-4として商業用途に量産された。
1966年にはシステムは0.67MIPSの性能を持つРАДОН(Radon)に置き換えられた。
アメリカ初の実用リアルタイムシステム、SAGE(Semi-Automatic Ground Environment)は1950年代後期に開発され、NORADで運用された。典型的なセージシステムは床面積2000平方メートルを占拠し55000個の真空管を使用した、275トンの巨大なコンピュータAN/FSQ-7を地下に据えた窓の無いコンクリートの箱だった。アメリカはこれを22台、北米の各所に配備した。
SAGEは基本的に航空管制システムであった。各所のレーダーサイトからの電話線を使ったテレメトリを元に、150人のオペレータがCRTを睨み、ライトガン(ライトペンにグリップの付いたもの)を握って、北極海上空を渡ってくる爆撃機を目標としてマークする筈だった。しかし、1958年のソ連によるICBMの実用化により、システムは一気に陳腐化することとなる。
最初の商用リアルタイムシステムは、1962のSabre航空機席予約システムをその嚆矢とする。IBMとアメリカン航空の共同開発によるそれはIBM7090上で稼動し、以降のオンラインシステムの祖となった。
最初の組込みコンピュータは1959年のポラリスSLBM搭載用に開発された計算機、Mk-Iである。重量26ポンド、80ワットの電力を消費した。1961年になると、アポロ計画用の搭載計算機AGCの開発が始まる。
同じ頃、旧ソ連でも組込みコンピュータの開発が開始されている。1959年に開発が開始された5E89はおもに軍用に使用されることを想定したユニット構成のコンピュータで冗長デュアルプロセッサ構成を取っていた。
レデベフが開発した5E92bは最初の全て半導体で構成された三重冗長プロセッサ構成のコンピュータで、5E51のモディファイ版だった。32kのRAMと64KのROM、そして1MIPSの能力を持ち、多重割り込みをサポートしていた。多層基盤を採用して極限環境に対応し、5キロワットの電力を消費した。5E92bは1961年に開発を開始し1967年に完成した。このコンピュータは防空システム用に12台が生産された。
このモデファイ版として5E51というコンピュータが開発された。5E51は0.5MIPSの能力を持ち、50台以上が生産された。これの技術をベースとして名機BESM-6は開発された。BESM-6は1MIPSの能力を持ち、長い間ソ連の代表的なコンピュータ機種として活躍した。
翌1968年には、三重冗長プロセッサ構成の、月計画用コンピュータАргон(Argon)-11cが開発されている。電力消費は75ワットにまで減っているが、RAMは128ワード(1ワードは14ビット)、ROMは4kバイト、毎秒数百命令しかこなせない性能だった。これはI/Oで冗長を取る疎結合冗長のアーキテクチャの制約のためである。あと、おそらくハーバードアーキテクチャであろうと推測される。重量は34キログラム、10Gの振動と真空に耐え、ミッション期間内に問題を起こす可能性は0.1パーセントという信頼性を持っていた。
今日的なリアルタイムOSの祖は1973年のRT-11である。DEC PDP-11上で動くこのOSはシングルタスク、シングルユーザーOSであったが、わずか8kのメモリで動作し、標準的なターミナルとベクターグラフィックのCRT出力、そしてライトペン入力が可能だった。
このOS上で、世界最初のコンピュータアクションゲーム"Lunar Lander"は動作した。
同時期にDECは別のリアルタイムOS、RSX-11もリリースしているが、こちらはもっと大規模な、オンラインシステムをターゲットとしたマルチタスク、マルチユーザOSである。WindowsNTの起源を辿ると最終的にはRSX-11に辿り付く。
リアルタイムOSのタスク間の排他/同期システムとして広く用いられるセマフォは、1960年代後半にEdsger Wybe Dijkstraによって考案された。もう一つの代表的なシステムであるメッセージキューは、タスク間メッセージ機構そのものは1965年のMULTICSには既に搭載されていたようだが、制御機構として定義したのはC.A.R.Hoareで、1978年のことである。
1979年に、マイクロプロセッサ上で動くリアルタイムマルチタスクOSの最初のものであるOS-9が誕生した。1982年にはpSOSとQNXがリリースされた。これらマイクロプロセッサ用のマルチタスク組込みOSこそが、現在のいわゆるリアルタイムOS条件を満たす最初のものである。
μITRONは1984年に東大の坂村健によって公表されたTRON構想のうちの、組込みシステムのサポートとして1987年に提案された。TRONの実体は基本的に仕様のみであり、最近までリファレンス実装を持っていなかった。(ちなみにμITRONのセマフォ関連のコールはDijkstra風じゃなく、ちょっとキモい。)
実体を持たないが故に、TRONプロジェクトは政治的な要素を持つこととなる。国策による教育現場への浸透を図る構想が存在したのも、スーパー301条による潰しが利いたのもこの要素の存在によるものである。
■ プログラミングとコンピュータ言語:世界史 -2004年10月14日(木)23時37分
世界最初のプログラミング言語は、1946年、Konrad Zuseによって生み出されたPlankalkulである。但し、この言語は実行されておらず、後のコンピュータ言語開発に影響を及ぼすことなく忘れられることとなる。
最初に実行されたプログラミング言語は1949年のShortCodeである。UNIVAC-Iを作ったばかりのレミントン・ランド社で、John Mauchlyによって開発されたそれは、コンパイラでなくプログラマがハンドアセンブルするものだった。
UNIVAC-Iは1ワードに2命令を格納可能で、命令一つに命令コード12ビットとアドレス指示24ビットを割り当てていた。アルファベットは6ビットで表現可能なので、命令はアルファベット2文字で簡潔に指示可能だった。このおかげでUNIVAC-Iは当時のコンピュータとしては別格のプログラミングのし易さを持っており、ハンドアセンブルもそう大変という訳では無かった。
世界最初のコンパイラ、A-0はGrace Hooper(海軍少将,数学博士)によって1952年にUNIVAC-I用に開発された。彼女はデバッグという言葉を初めて使ったこと、また、プログラミング言語COBOLの生みの親としても知られている。また、彼女の名を冠したイージス駆逐艦(アーレイバーク級 DDG-70)も存在する。
A-0は英語による命令と参照を可能とし、後にFLOW-MATIC、プログラミング言語COBOLの原型へと進化した。
最初の本格的な高級プログラミング言語は1954年にAlick Glennieによって開発されたマンチェスターMarkI用の言語、AUTOCODEである。
代数式をそのまま記述することができ、ユーザがアドレスやリソースを直接管理しない、高級プログラミング言語はこの時誕生した。AUTOCODEはIBM702やEDSAC2など多くのコンピュータに移植された。
MITのAlan Perlisによって1955年に開発された言語、ITは最終的に実用的なものにはならなかったが、その目標と特徴は周囲に多くの影響を与えた。Alan Perlisは後にプログラミング言語ALGOLの規格制定に関わることとなる。
最初の成功したプログラミング言語、FORTRANは1954年にIBMワトソン研究所のJohn Backusによって開発を開始された。FORTRANはA-0とTIに多くの影響を受けながら、現実的な性能を出すべく開発された。
当初FORTRANは当初IBM701コンピュータ用に開発されたが、実装は1957年にIBM704用としてリリースされた。その2ヶ月後にはIBM705用のFORTRANも提供された。また、IT言語とFORTRANとの相互変換を行なうコンバータも開発された。
高級言語はコンピュータのリソースを直接記述しないために、移植性にも優れていた。翌年にはIBM650用のFORTRANもリリースされ、ここにFORTRANはコンピュータ言語の代表としてユーザに広く普及する事となった。
1958年、MITのJohn McCarthyはプログラミング言語Lispを生み出した。LispはFORTRANに次いで古い、最古の言語の一つである。同じ年に、プログラミング言語Algolが委員会によって作られた。AlgolはBNF(バッカス=ナウア記法)を使って定義された最初の言語である。1959年にはプログラミング言語COBOLが誕生し、初期のプログラミング言語が出揃う事となる。
■ 毛利衛氏が凄いことに -2004年10月2日(土)21時26分
凄い事になっています。日本の教育が壮絶に悲惨なことに。しかし、毛利衛氏は更に凄い塩梅です。うわぁ。
■ ネットワーク上の旧ソ連コンピュータに関する情報源追加 -2004年9月29日(水)01時55分
"Микро-80", "Радио-86РК", "ЮТ-88", "Орион-128"といった、旧ソ連の独自マイコンに関するページです。Микро-80などについての Радио誌の全記事が収録されているのは特筆すべきでしょう。
Web日記形式のコラムClassic 8-bit/16-bit Topics中の記事です。日本語で書かれた、旧ソ連及び共産圏のマイコンについての貴重なテキストです。
■ つくばの風車 -2004年9月13日(月)00時39分
大正から昭和30年頃まで、日本のおよそ六箇所で、灌漑用水用の風車が多数作られ、運用されていた。そのうちの一箇所は、今のつくば市近郊である。
http://www.eureka.tu.chiba-u.ac.jp/windmill/summary/08.html
つくばでは、最大一千台の風車が動いていたと言う。近年において復元されたものがあるらしい。
これら風車は、昭和30年代に動力式揚水ポンプに取って代わられることになる。燃料代のかかる動力ポンプに風車が負けたのは、風車が頻繁で緻密なメンテナンスを必要としたからである。
あと気になったのが、”山田風車”日本における発電用風車として成功した唯一の例だと思われる。最大一万台とは凄い。
例によって、これも完全に駆逐されてしまった。動く山田風車は、もはや1台あるかないか、だとか。山田風車がどのような外観、構造なのか、ネット上では見つけることが出来なかった。
■ まとめてみる。 -2004年9月6日(月)22時00分
まとめると、
H-IIAの一段目をケロシン/液酸に置換すると、一段目の全長は半分になり、全重量は元の60パーセントになり、SRB-Aが二本とも不要になる。
……合っているのだろうか。
どうせだから定量的に考えてみたい。
ツィオルコフスキーの式から、ケロシン/液酸ロケットの構造重量比は、同等の液水/液酸ロケットのそれと比べて(液水/液酸エンジンの排気速度/ケロシン液酸エンジンの排気速度)乗だけ大きくなります。
例えば、構造重量比10の液水/液酸ロケットと同等の性能にするためには、ケロシン/液酸ロケットの構造重量比には21.7という数字が要求されます。
さて、タンクの製造に当たって、同じテクノロジーが投入されているとして、乱暴だがタンクの容量に対して重量が比例する値を取ると仮定します。
理屈で考えると、重量はタンクのそれぞれの部位に掛かる応力の総和に比例する筈ですが、実際にはタンクは割と均等な外壁構造をしており、また、容積に重量が比例する一定の傾向が見られるのも、少ないサンプルながら確認しました。
ロシアとアメリカ+日本、2本の直線が確認できます。H-1,H-IIAの延長線上にシャトルが位置しています。アリアン5がえらく良い値です。
先日の密度と混合比から、それぞれの平均密度を出してみる。
液水/液酸
1/((4.83/(1+4.83))/1.14+(1/(1+4.83))/0.071) = 0.32(g/cm^3)
ケロシン/液酸
1/((2.77/(1+2.77))/1.14+(1/(1+2.77))/0.58) = 0.91(g/cm^3)
前述の仮定に従えば、重量容積比が同じ液水/液酸ロケットのタンクは、ケロシン/液酸のタンクのおよそ三倍の重さになります。
三倍の重さを持つ液水/液酸ロケットのタンクが、同じ条件のケロシン/液酸のタンクと互角になるためには、構造重量比で22という値が必要になります。
……まて。合っているのか、本当に?
追記:排気速度の差を忘れてた!
実際の重さの差は2.13倍で、互角となる構造重量比は
((0.91/0.32)*(3300/4410))^(-1/(1-(4410/3300)))=9.44
……普通の値だ。
■ ちょいと計算してみる -2004年9月4日(土)22時26分
ツィオルコフスキーの式では液酸/液水が圧倒的な性能を示すように見えますが、推進剤と酸化剤ペアの密度はそれぞれ違うので、それを収める機体の構造重量比を考慮すると、例えば液酸/ケロシンとの差は大幅に縮まります。
タンクの単位面積あたりの構造重量一定、タンクを球と仮定、ペイロード無しで最終到達速度を同じで比較すると、液酸/液水と液酸/ケロシンでは、一割ほど液酸/液水が軽くなりました。但し二倍半くらいサイズが大きくなります。
結局、コストを考えなければ液酸/液水のほうが性能的には上であると考えます。しかしコストは大幅に悪化します。
打ち上げの初期では重力損失に対抗するために、どうしても推力が必要です。エンジンの推力は、時間当たりの推進剤消費と噴射速度の積で決まりますが、推進剤はターボポンプを必ず通過する必要があります。
ターボポンプは体積単位で流体を処理します。そして、ケロシンと液体水素では密度が8倍以上違います。
密度(g/cm^3)
液体水素 :0.071
ケロシン(RP-1) :0.58
液体水素 :1.14
混合比(重量混合比)
液酸/液水 :4.83
液酸/ケロシン :2.77
有効排気速度(m/s)
液酸/液水 :4410
液酸/ケロシン :3300
推進剤の重量割合 1/(1+混合比)
推力A(運動量推力のみを考える)を得ようとすると、A=M*V
推進剤重量M は(A/V)/(1+混合比)、
容積は((A/V)/(1+混合比))/密度 となる
同じ推力を得ようと思ったら、液水用ターボポンプは、単位時間当たりケロシン用のおよそ4倍の体積単位流量が必要です。
但し、ケロシン/液酸用エンジンでは液酸のほうが体積単位流量が多くなるので、実際には要求性能差は2.8倍にまで縮まります。
燃焼室容積は、ケロシン/液酸のほうが1.4倍ほど大きくなりますが、ターボポンプの性能のほうが重要な問題でしょう。同じ技術水準でエンジンを作ると、ケロシン/液酸エンジン1基と同等の推力を得るためには2.8基の液水/液酸エンジンが必要ということになります。
さて、問題は、液水/液酸と固体推進剤の組み合わせ、との比較でしょう。
単純に、H-IIA一段目をケロシン/液酸系に取り替えた場合を考えます。
H-IIAスペック
二段目より上の部分の重量 :23ton
一段目分離時の機体速度 :5210m/s
一段目のエンジンを除いた部分(タンク)の重量容積比 :87.1(kg/m^3)
ツィオルコフフスキーの式から、構造重量比(初期重量/最終重量)は4.85
最終重量Ma = 一段目重量Mf+23(ton)
初期重量M = (Mf + 23)*4.85 (ton)
推進剤重量 = (Mf + 23)*3.85
推進剤容積 = ((Mf + 23)*3.85)*1.03 = (3.97*Mf)+91.2
Mf = ((3.97*Mf)+91.2)*0.0871 = 0.345787*Mf + 7.94352
(1-0.345787)Mf = 7.94352
Mf = 7.94352/(1-0.345787)=12.142100508549967671079602514777
= 12.1ton
初期重量M = 35.1*4.85=170.235(ton)
推進剤容積 = (3.97*12.1)+91.2 = 139.237(m^3)
両端を半球体が付いた円筒タンクの容積V= π*r^2*h+(4/3)*π*r^3 r=2(m)とすると、
h=(139.237-33.51)/12.56637=8.41(m)
タンク全長 = 円筒部の高さh + タンク直径2r = 12.41(m)
一段目の長さはH-IIAの半分になります。
H-IIAの全重量が288トンだったのに対して、ケロシン/液酸採用型では、170トン。60パーセントでしかありません。
気になる離床時推力ですが、上で論じた事柄からすれば、LE-7A相当規模のエンジンなら、LE-7Aの三倍の推力を得る事が出来る訳です。つまり推力は300トンオーバーであり、このロケットはSRB-A無しで軽々と離床するでしょう。
■ 百発百中の砲1門と百発一中の砲百門 -2004年8月25日(水)23時20分
学生の頃、こういう話を聞いた。
「とある集まりで、東郷平八郎がこう言った。
『百発百中の砲1門は百発一中の砲百門に勝る』
居合わせた数学者が、そんな筈は無いと説明したところ、逆に精神論について説教された」
永いこと気になっていたのだが、思い出しついでに検索してみると、微妙に有名な話であったらしい。
初出は日露戦争後の連合艦隊解散ノ辞で、かつては有名な文句であったらしい。
名文とされているらしいが、肝心な部分は勿論、後半の辺りなどもツッコみどころ多数である。
ちょっと考えてみれば判るが、百発百中の砲1門と百発一中の砲百門が戦った場合、百発百中の砲1門は会敵直後に63パーセントを超える確率で撃破される。双方の射撃速度が等しい場合、百発百中の砲が三射目以降に生き残っている可能性は5パーセントしかない。
昔の人もおかしいとは気が付いていたらしいが、何が畏れ多いのか訂正せずに済ませたようだ。ただ、百発百中の砲は初回で100パーセント撃破されると考える人間が大半だったと言う点が気になる。実際には初回撃破の確率は63パーセントであり、運命のサイコロの程度によっては初回を生き残れたかもしれないのである。
確率の素養の無い人間は、百発一中が百門だからと、単純に足し算してしまう。かつての日本人の大半には、確率の素養が無かったし、軍人にはそれに輪をかけて素養を欠いていた訳である。現在の日本人の大半も、であろうが……
精神論とは大抵の場合、自分に都合のいい妄想に過ぎない。この四十年後の、無条件全面降伏というオチにも納得がいくというものである。
■ 「資本論」読書ノート#4 -2004年8月16日(月)23時20分
以前よりも読むのに慣れてきた。これは、意味不明であるところを読み飛ばしているだけなのであるが、これは、そうして全く問題がないという第一巻読破の経験から可能となったものである。
第3篇第5章 労働過程と価値増殖過程
熟練工と未熟練工の区別は意味が無いそうである。マルクスは、いわば超過時間労働によって剰余価値は生まれると考えている。奴隷労働に際して使用される機器の粗雑さに関する指摘は興味深い。
第6章 不変資本と可変資本
マルクスは、資本を不変資本と可変資本に分け、設備を全て不変資本へ分類し、労働の搾取の度合いを、労働による産物の価値と可変資本との比率によるものと定義した。
設備投資は可変資本に入るようである。つまり、不変資本という分類は無用であるし、減価償却という観点も存在しない。そうして、当時の搾取を支持する経済学者を攻撃するのであるが、攻撃される側は、設備費用を計算時点で全更新するような計算をしているし、マルクスは前述の通り設備費用を計算に入れない。
第7章 剰余価値率
マルクスは加減算は完璧にこなすが、割り算は少々怪しい。彼の攻撃のほとんどは見当違いである。数に関する認識が少々いい加減であるように思われる。このあたりが、様々な”価値”分類を生む原因となったのではあるまいか。
第8章 労働日
これは、まず時間給という概念が存在しなかった時代(信じられない気がするが、そう読み取れる)の話である。もちろん能力給という概念も存在しない。19世紀半ばというのはそういう時代だったのだ。
むやみに長いが全般にこの章は読み応えがある。これを読むことによって、労働争議における労働時間短縮という争点の位置づけを理解することが出来るだろう。
■ タンクの構造について(1) -2004年8月9日(月)00時30分
打ち上げ機の構造の、容積の大半を占めるのはタンクである。
タンクは打ち上げ時の加速による負荷と振動に耐えなければならない。また、推進剤を安全に貯蔵しなければならない。その上で、軽量であることがタンクには要求される。
まず、加速による荷重について考える。打ち上げ時の振動が全く無いと仮定すると、タンクは自重と自分の内部の液体による内圧に耐えれば良い事になる。とりあえず加速は垂直方向のみと考えよう。この場合、加速度は重力加速度と機体の加速度の合成となる。
液体による内圧は、周囲大気圧をゼロ、ゲージ圧もゼロとすると、液面からの深さと液体の密度、それと加速度の積で決定される。液面は、ロケットのエンジン駆動に伴う推進剤消費によって変化する。また、加速度は推進剤消費による機体重量の変化によっても変化する。
エンジンの推力をA(N),エンジンからの排気速度をV(m/s)とすると、秒当たりの推進剤消費 N=A/V(kg) となる。通常液体燃料ロケットは推進剤と酸化剤の2液式であり、それぞれの毎秒の消費量をNs,Noとする。Ns+No=A/V(kg)となる。
液体の密度をQ(kg/m^3)、タンクの直径をR(m)とすると、タンクの中で液体の液面は、毎秒(N/Q)/((R/2)^2*PI)(m)だけ低下する。
ロケットの構造重量をMa,初期推進剤重量をMbとすると、t秒後のロケットの重量は Ma+(Mb-A/V)(kg)となり、加速度は 重力加速度g+A/(Ma+(Mb-A/V))(m/s^2)となる。
燃料を2液を1液で近似したものとし、タンクを端面のドーム無しの単純な円筒で近似すると、タンクの長さLは L = (Mb/Q)/((R/2)^2*PI) となる。
タンクの任意の高さにおける液面までの高さは、L-(N/Q)/((R/2)^2*PI)*t であるから、その位置での内圧は、L-((N/Q)/((R/2)^2*PI))*t*Q*(g+A/(Ma+(Mb-A/V))) (Pa)
となる。
次はここから応力を算出したい。
■ Cygwin上でクロスコンパイル環境を構築する -2004年8月1日(日)11時40分
1: Cygwinの導入
Cygwinは、WindowsOS上にUnix互換環境を実現するプラットフォーム一式です。
Cygwin導入によって、Unix系のソースコードをWindows上でコンパイルすることが可能となります。
Cygwin導入には、cygwin.comでSetup.exeをダウンロードし、実行することで好きなモジュールごとに選んでインストールすることになります。またSetup.exeを使うことで最新版へのアップデートも可能となります。
Setup.exeを実行し、[install from internet]を選択すると、インストールするディレクトルを聞かれます。ここはできるだけデフォルトの[C:\cygwin]のままで。
Install For は[All Users],Default Text file Typeは[Unix]に。
インストールは、まず選択したパッケージファイルを指定したテンポラリディレクトリに展開してから行われます。Local Packege Directoryはその指定です。
Select Your Internet Connection は[Direct connection]で。
Choose A Downloads siteで、ダウンロード先を選択します。
ダウンロード先には、ftp://ring.*.*.jp形式のサーバを推奨します。繋がりやすいのはaist、crlや京大はつっかえることアリ。
Select Packagesで、好きなパッケージを選んでインストールします。
この時点で、Cygwinシステムとして必要最小限のパッケージが選択されています。
開発環境としてあと必要なのは、
+All
+Base <= Bin?全てを選択する
+Devel <= binutils,gcc,gcc-g++,gdb,はBin?,Src?両方を選択する
他は全てBin?を選択することを推奨
+InterPreters <= gawk,m4,perlのBin?を選択
あとは好きなものを。CVS,tcshくらいは選択するべきかと。less、vimなども。
Bin?はバイナリ、Src?はソースを意味します。
インストールが終了すると、デスクトップにCygwinのアイコンが出来るのでダブルクリックして起動します。
見かけはDOSコマンドプロンプトに似ていますが、Unix環境です。ためしにlsやcatを実行してみてください。
2: newlibの導入
newlibは組み込み用のC/C++ライブラリです。これが無いとstdio.hも何も使えません。
newlibはさっきのCygwinのサイトからジャンプしたサイトからダウンロードできます。サイト左端のリンクリスト一番下の[sources.redhat.com]
再び左端の[Prejects]
下のほうの [newlib]<=最初からここへ飛ぶも良し
左端の[Download]から Source snapshotをとって来ます。一番下の文章中の[newlib ftp directory]というリンクの先から、一番新しいものをダウンロードしてきます。
*もちろん、CVSで落とすのもOK
ダウンロードしたファイルは C:/Cygwin/usr/srcにコピーします。
解凍はCygwin環境で行います。まず cd /usr/src で、ダウンロードしたファイルの位置に飛びます。Cygwinの中では、C:\Cygwinが / つまりルートディレクトリとなります。
tar -zxvf newlib-1.12.0.tar.gz
これで解凍されます。
3: クロスコンパイル環境の構築
3:1 binutils
/usr/srcには、ソースコードのダウンロードを選択したパッケージが、既に展開されていると思います。
その中から、/usr/src/binutils-200*****-*(*は日付ベースのバージョン番号)にcdし、次のようなコマンドを実行します
(1)ルネサスSHシリーズの場合
./configure -target=sh-hitachi-elf -prefix=/usr/cross -disable-nls
(2)Intel Xscaleの場合
./configure -target=xscale-netbsd-elf -prefix=/usr/cross -disable-nls
(3)MIPSの場合
./configure -target=mipsel-netbsd-elf -prefix=/usr/cross -disable-nls
configureコマンドは環境に応じてコンパイルの下準備をします。
-targetオプションは各アーキテクチャのelfバイナリ版を作るということを意味しています。elfについてはここでは触れません。-netsdオプションはまあその、NetBSD派だし。
-prefixオプションは、クロスコンパイル環境をどこに構築するかを示します。ここでは/usr/crossを推奨します。先にディレクトリを作っておきましょう。
mkdir /usr/cross
-disable-nlsは多言語対応オプションを外すことを意味しています。これを外さないとTOPPERS/JSPカーネルをコンパイルできませんでした。
次に、
make
を実行します。無事終了したら(しばらくかかります)、
make install
を実行します。
二個目のクロスコンパイラを作る前には
make clean
を忘れず実行しましょう
3:2 gcc
/usr/src/gcc-3.2-* へcdします。
まず、newlibへのシンボリックリンクを張ります。まぁ、ショートカットみたいなもんです。
ln -s ../newlib-1.12.0/newlib .
コンパイル先ディレクトリを掘ります。
mkdir dist
cd dist
コンフィギュレーションを行います。
(1)ルネサスSHシリーズの場合
../configure -target=sh-hitachi-elf -prefix=/usr/cross -with-gnu-as -with-gnu-ld -with-newlib -with-headers=/usr/src/newlib-1.12.0/newlib/libc/include --enable-languages="c,c++"
(2)Intel Xscaleの場合
../configure -target=xscale-netbsd-elf -prefix=/usr/cross -with-gnu-as -with-gnu-ld -with-newlib -with-headers=/usr/src/newlib-1.12.0/newlib/libc/include --enable-languages="c,c++"
(3)MIPSの場合
../configure -target=mipsel-netbsd-elf -prefix=/usr/cross -with-gnu-as -with-gnu-ld -with-newlib -with-headers=/usr/src/newlib-1.12.0/newlib/libc/include --enable-languages="c,c++"
……長いです。うまくいったら、
dist/Makefile と dist/gcc/Makefile の
(1)ルネサスSHシリーズの場合
program_transform_name = -e s,^,sh-hitachi-elf-,
を、
program_transform_name = -e s,^,/usr/cross/bin/sh-hitachi-elf-,
(2)Intel Xscaleの場合
program_transform_name = -e s,^,xscale-netbsd-elf-,
を、
program_transform_name = -e s,^,/usr/cross/bin/xscale-netbsd-elf-,
(3)MIPSの場合
program_transform_name = -e s,^,mipsel-netbsd-elf-,
を、
program_transform_name = -e s,^,/usr/cross/bin/mipsel-netbsd-elf-,
と書き換えます。
そして、
make
時間がかかります。ひと晩くらい。うまくいかないこともあります。うまく最後まで完走したら、
make install
これでGCCが使用可能となります。
3:3 gdb
デバッガgdbをコンパイルします。これも大体似た感じでconfigureしてmakeです。
■ 十三塚 -2004年7月23日(金)01時39分
十三塚とは、全国各地に点在する、古道沿いに13個並んだ小さな盛り土の群れのことである。その数は地図上で確認できるだけで二百、恐らく全体では千を超えると思われる。残念ながらその遺構の大半は現代ではほとんどが失われ、残ったものも近年の圃場整備で失われつつある。
十三塚は集落の付近、道への出口に多く築かれるが、必ずそういう場所に築かれるという訳では無いらしい。塚はほとんどが直径2mほどの盛り土だが、石積みのものもあるらしい。多くの十三塚は中央に特別にひとまわり大きな塚を持つ。
十三塚の築造年代、目的はいづれも不明である。発掘しても何の遺構も遺物も出土しないため、年代特定は極めて難しい。文献からは、その歴史は少なくとも室町時代には存在が知られており、それ以前にまで遡る事が知れる。但し、十三塚が属する古道の歴史から、それほど遠い過去に遡るものでも無いだろうと思われる。
十三塚にまつわる地元の由来、古伝は様々である。いわく、古い合戦での武将の首塚である、姫様と侍女の墓である、戦死者が葬られている、埋蔵金が眠っている、等々。要するにその由来、歴史は完全に失われているのだ。
近代においての定説は、仏教由来、恐らくは修験道に関連した何かであるというものだが、実際のところ根拠は存在しない。
日本全国各地に、この失われた歴史、断絶は存在する。形の無いものはもっと完璧に歴史から消えただろう。