[OSASK 3994] (IPA)エミュレータ.

  こんにちは、川合です。

  現在NASKの開発と並行して、「未踏ユース」への応募への準備を進め
ています。これはこれで大変神経を使う作業なのですが、Mr.BOWさんの
厚いご協力もあって、なんとかこなせています。

  今回はPMは一人だけですので、誰を選ぶかという苦悩はありません。
またPMの竹内先生はとてもよい先生だろうということで、僕とMr.BOWさ
んの見解は一致しております。

  さて、今は申請書類にどんなことをどんな風に書くかを検討している
ところです。特にエミュレータへの言及についてです。僕は[OSASK 387
6]でエミュレーションに極力言及しないという方針を表明しましたし、
当初はその方針をより強化しようと思っていたのですが、ここにいたっ
て方針を変えようと思いつつあります。これを、Mr.BOWさんが大変懸念
し、僕も「やっぱりだめかなあ」と思いつつあります。僕は大変に混乱
しております。僕としては皆さんのご意見をうかがってみたいと思いま
した。

  エミュレーターに積極的に言及しないでOSASKの魅力を語ることはも
ちろん可能です。またエミュレーションに言及したとしても、win32の
エミュレーションに言及しないということも可能です。・・・しかし、
このどちらの方法をとっても、「OSASKの対応アプリ数は世界最大を目
指す」という、もっとも一般の人々に分かりやすいビジョンを示せなく
なります。このビジョンがあればこそOSASKは互換性ついての不安を一
掃し、それゆえに互換性を無視した性能向上のための徹底した再設計が
容認されうると思っています。・・・そしてエミュレーターが違法なら
これはやらないという含みを持たせることで、僕たちが法律を無視して
までやるつもりはないことを示すことで、違法性への懸念を押え込もう
としています。・・・これが以前の僕の見解です。

  一方で、Mr.BOWさんにかなり説得されてしまった僕は、これこそ「や
ぶ蛇」だと主張します。こんなこと言わなければなんとかなったかもし
れないのに、余計なことを言っていらぬ誤解を受け、そして不採択にな
ってしまうのです。そもそも今年度はどうがんばってもエミュレータに
は着手しないと予想されるので、言及する必然性はありません。だから
本当に「やぶ蛇」です。

  さて、以下に現在の時点での申請内容案を出します(長いです)。こ
れを読んで、みなさんの上記の論争に関する率直なご意見をいただけな
いでしょうか?あらかじめ申し上げておきますが、仮に10個のご意見を
いただいてそのご意見の全てが「エミュレータへの言及は控えた方が良
さそうだ」ということであっても、僕はエミュレータに言及する方を選
ぶかもしれません。その逆もありえます。僕が重視するのはみなさんが
どのように考えたかであって、どのような結論にいたったのかではあり
ません。・・・なお、どちらに決まったとしても、申請後に僕の意図を
説明いたします。

  この発言はMLを通じてなされていますが、いつも通りOSASK伝言板や
「2ちゃんねる」でご意見を表明なさってもかまいません。僕が見てい
るところなら、どこでもいいです。名前を伏せたければ、「匿名」で伝
言板などをご利用ください。

  またこの論点以外にも何かコメントしたいことがありましたら、それ
も必ず読みますので、書いてくださると嬉しいです。

  それで、僕としては7/16くらいまでにはこの文章の内容を確定してし
まいたいので(応募締め切りまで時間がないのです)、それに間に合う
ようにご意見がいただけたらと思います。・・・まあ、その後も2〜3日
は表現の調整などを行いますので、多少は盛り込めるかもしれませんが
。

  それでは。

---

"2002年度用 Youth向け 原案-k001"


0.目次

  1.なにを作るか
    (背景 - なぜ - 従来のOSへの不満 -)
    (目的 - なにを - 新設計OS -)
    (目標 - どこまで - コミュニティーの自立を目指して -)
  2.新しさの主張、期待される効果など
    (可能性 - できるのか?)
    (ニーズ - 高速・省電力・明確な需要 -)
    (手法 - 徹底した再設計 -)
    (互換性 - 高速エミュレータで -)
    (学術的価値 - 大きな可能性 -)
    (現状 - ソフトウェア)
    (現状 - コミュニティー)
  3.具体的な進め方と予算
    (今年度の予定)
    (来年度以降の予定)
    (その他)
    (予算 - 300万円 -)
  4.提案者の腕前を証明できるもの
    (実績の紹介 - 多くのフリーソフト -)
  5.特記事項
    (いきさつ)
    (是非ヒアリングの機会を!)
  6.将来のソフトウェア技術について思うこと・期すこと
    (ハードとソフト)

  (このページにOSASKの動作画面を)


1.なにを作るか

(背景 - なぜ - 従来のOSへの不満 -)

  ここ十年のOSの進化には目をみはるものがある。Linuxのおかげで安価で高機能な環
境を整えることもできる。・・・一方、ハードウェアの劇的な進化(メモリやハードデ
ィスク容量の劇的な増加や、CPUの速度の向上)から推察すると、優に数十倍の性能向
上があった。ではパソコンは十年前と比べて数十倍使いやすくなっただろうか。機能が
増えればその分は速度が落ちるだろうし、容量を必要とするだろう。それは分かってい
る。しかし、機能は何倍になったのだろうか。速度は何倍になったのだろうか。そして
その積は数十倍に等しいのだろうか。

  世間の多くの人々はこれを「等しい」として特に疑問を感じていないようだが、私に
は疑わしい。私が思うに、これはプログラマが効率をないがしろにしすぎたためである
。実行速度に関する改良を、いずれハードウェアの進歩があるから不要だと一蹴し、ア
ルゴリズムの精練を怠ってきたからである。・・・これは失われた性能であり、これを
取り戻したいというのが私の思いである。5万円のパソコンを買ったのなら5万円分の性
能を発揮してもらいたいのであって、仮に2万円分がソフトウェアの不備による損失だ
とするなら、それは一人のプログラマとして我慢できないのである。

  古いバージョンのソフトウェアに機能を付け足していくうちに全体の構造が悪くなり
、それらの全機能を再検討して作り直したらずっとスマートで良いプログラムに生まれ
変わったなんていうのは、プログラマなら誰しも一度は経験のあることである。私は、
これをOSに対してやりたいというに過ぎない。

(目的 - なにを - 新設計OS -)

  私たちは、OSASK(おさすく)という新しいOSを作る(既に作りはじめていて、もう2
年以上経つ)。このOSの最終的な目標を以下に具体的に挙げる。

  「今のWindowsやLinuxと同等以上の機能を有するOSを以下の条件下で作成する。」

・486程度のCPU、メモリ8MBでストレス無く快適に使える速さ
・OSのインストール容量は1MB程度(アプリなどを含めれば10MB程度)
・さらにいくつかの特徴的な機能の追加(これも紹介したいが多岐に渡っているので概
  略だけでも2〜3ページほど必要になる。紙面の都合でやむなく省略)

  誤解してほしくないので補足するが、私たちは単に軽いOSを作りたいというのではな
い。いわゆる軽いOSというものは、軽さの代償として機能も失っている。私たちは機能
について妥協する気はない。いうなれば機能を保ったまま限界まで軽くしてみたいとい
うことである。

  この程度でWindowsやLinux以上の機能を実現しようなんて、悪い冗談ではないかと思
われるかもしれない。むしろそれこそ「常識的な」見解である。しかしこれは本気であ
るし、公開している開発中のバージョン(後述)を試した人の多くが、私たちのビジョ
ンに納得している。

  ホームページ:   http://www.imasy.org/~kawai/osask/

(目標 - どこまで - コミュニティーの自立を目指して -)

  OSといえば、現在知られているソフトウェアの中でもっとも大規模なジャンルである
。これは1年や2年で完成させることはできないし、また開発者数が数人でこなせること
いうことも考えられない。すでにOSASKは広く開発者を集めるためにオープンソースプ
ロジェクトになっており、あとは成果を上げてより多くの人にアピールし、仮にプロジ
ェクト創立者である私がいなくなったとしても継続して成長して行けるようなコミュニ
ティーにまで成長してもらうことである。それが私にとっての目標である(プロジェク
トの目標は飽くなき改良であり、極論すれば終わりはない)。夢のような理想を言えば
今のLinuxコミュニティーのようなものなってほしいと思う。

  このために私がやるべき最低事項は、基本的な部分をコーディングしドキュメントを
まとめ、あとは自由な拡張を積み重ねるだけでいいような状態に持っていくことだろう
。そうすれば、私がこのOSに託した意図は明確になり、後継者がそれを引き継げるよう
になるだろう。それにはあと2年くらいかかると思っている。


2.新しさの主張、期待される効果など

(可能性 - できるのか?)

  まず、先に挙げた「486でメモリ8MBでインストール容量が1MBの範囲で、WindowsやLi
nuxと同等以上」などという目標は、私のプログラマとしての能力すら疑いたくなるよ
うな内容である。この時点でただの大言壮語だと思われるのも無理はない。なんといっ
てもWindowsやLinuxでは、GUI(グラフィカルユーザインターフェース)やそのほかの
機能のために、486の十倍程度のCPUや、十倍程度のメモリや、1MBの百倍程度のインス
トール容量を要求しているからである。もしこれがそれぞれ数割の改良にとどまるよう
な提案であればきっと誰もが信じたであろう。しかしそれは私には未踏とは思えない。

  むろん私は本格的なOSをOSASK以外に作った実績を持っているわけではない。だから
私の主張を疑いたくなるのはもっともである。そこで最初は一人で黙々と作っていた。
理解が得られない以上当然のことである。・・・そして少しできた。そうするとわずか
な支持者が現れた。そうなるとさらに開発が進み、そして支持者が増える。こうしてコ
ミュニティーが形成され、現在にいたっている。

  現在のバージョンであるOSASK ver.2.6は、おそらくIPAやPMの竹内先生が可能性を認
めざるをえないほどのものにまでなっていると自負している。

  フル32bit、マルチタスク、GUIマルチウィンドウを実現して49KBであり、もちろん486
でも快適に動作する。この49KBの中にはシェルやデバイスドライバも含まれている。ま
たフォントファイルをインストールすれば、それだけで日本語や韓国語にも対応する。
起動に必要な時間も2〜3秒ほどである。

  何かトリックがあるかもしれないとい疑う人はもちろんいる。しかしそんなことは一
つもない。マルチタスクの実現方法が擬似なんじゃないかとか、OSがほとんど何もしな
いでアプリが何もかもやらなきゃいけないんじゃないかとか、その他様々な疑問が私に
ぶつけられたが、それは公開されたソースを検証してもらたり、アプリケーションのサ
イズがさらに小さいことを確認してもらって納得してもらっている(たとえば、Windows
のメモ帳のような簡易テキストエディタが6KBなど。Windowsのメモ帳は34KBだし、Linux
では100KBを超える)。現在AT互換機版とFM-TOWNS版のOSASKがあるが、もちろんアプリ
は共通である。

(ニーズ - 高速・省電力・明確な需要 -)

  そもそも486を今になっても使っている人はほとんどいないから、OSASKが仮に実現し
てもなんの価値もないという意見もある。実は今年度の「未踏本チャン」はこれを理由
に不採択になっている。だから詳しく説明したい。

  今どき486クラスのマシンをターゲットにすることになんの意味があるだろう。せい
ぜい古いマシンがよみがえるという程度の意味しかない。重視しているのはそのことで
はなく、それくらい「軽い」ということである。

  もちろんこのような軽さの追求をしてもしなくても、最近の高速なパソコンを使う限
りにおいて使用感が変わることは期待できないだろう。しかしノートパソコンなどでは
、CPU負荷に応じて消費電力が変化するものがあり、それらで実行する場合にはバッテ
リ持続時間の伸びが期待できるかもしれない。OSはメモリをほとんど使わないため、あ
まったメモリはアプリやディスクキャッシュにまわすことができ、結果的にHDDアクセ
スは減少し、これもバッテリ持続時間を伸ばすだろう。

  私は何か明確なニーズを意識して作りはじめたわけではないし、今も明確なニーズの
イメージはない。しかしそういうものこそ、実現したときに何が起こるか分からないと
も言えるのではないだろうか。コンピュータの処理能力が上がってCUI→GUIという進化
が可能になったが、それを予想してコンピュータの処理能力を上げてきたわけではない
。処理能力向上があるラインに達したからこそ、そういう動きが出てきたのである。

  OSASKも相対的にはコンピュータの能力を上げていることになる。そして今までOSが
費やしてきた処理時間を他のことに使うか、もしくは電力消費を抑えるという方向に還
元できるのである。

  確認するまでもないだろうが、新型のCPUが開発され速度が向上することに異論をと
なえる人はいないだろう(それが売れるかどうかはコストにも依るが)。同様にOSのパ
フォーマンスが上昇することに異論を唱える人はいないはずである。私に問われるべき
は、それが可能かどうか、コストは見合うか、何かを犠牲にして使いにくくなってしま
わないかどうかということだけなのである。・・・もちろん私は、可能で、コストは十
分に見合って、何の犠牲もないと主張する。

  近年の世間の風潮ではハードウェアが速度を求めて激しい開発競争をすることは良く
て、ソフトウェアが速度を求めてはいけないということになっている。ソフトウェアを
改良するよりも、新しいハードウェアを買う方がローコストであるとされるからである
。果たしてそうだろうか。私たちは、目標に掲げた効率を達成するために必要なコスト
(=努力)が、それほど多くないということをOSASKをもって証明したい。Linuxコミュ
ニティーからみれば、豆つぶにしかならないような小さなOSASKコミュニティーが数年
をかけるだけで達成できる。もしコミュニティーが大きければ時間はもっと短縮できる
であろうし、大きな企業が組織的にやればすぐにできるだろう。「やればできる」ので
ある。やりもしないでコストが高くつくはずだ、なんていうのは私たちの納得できるも
のではない。

  この点についての反論をするなら、現在のOSASKの最新版を試し、そのサイズと速度を
体験してほしい。この現実を前にして、それでも私たちの方針が間違っていると論証で
きる人々は皆無である。考えてみてほしい、OSASKのようなOSとWindowsやLinuxなどを提
示されてWindowsやLinuxを選ぶ理由が一体どこにあるだろうか。提供する機能で劣るこ
となく、速度でも圧倒できるなら、OSASKを選ばない合理的な理由があるとは思えない(
Windowsにはたくさんのアプリケーションソフトがあるが、OSASKにはないという意見は
あるだろう、この点の解決策も後述する)。

  それでもニーズに疑問を感じる人がいるかもしれない。それはその人が時代に取り残
されているに過ぎない。私たちは新しいニーズの先頭にいることを確信する。後述する
ように、OSASKへの期待と協力者数の伸びは、大変なものである。これは明確な需要で
ある。私は、「きっとこうなるだろう」などという数字を挙げているのではない。これ
は現在の実際の数値であって、明確な証拠なのである。

(手法 - 徹底した再設計 -)

  現在のOSASKがどのように達成されたのか、どうしてそんなことができたのか、それは
そんなに複雑な理由によるものではない。

  現在のOSは今までのOSの進化の歴史を経てここにいたっている。そしてコードをどん
どん付け足して機能を追加してきた。そうしているうちに使わない部分が出てきたり、
必要以上に多層になっていたり、処理が遠回りになったりしている。

  私はこれを一度全て捨てて、現在のOSの機能を実現するために必要な仕組みを考え直
し、既知のアルゴリズムを改良した。効率を重視して仕様を見直し、ハードウェアの性
能をフルに生かせるようにした。この「設計の全面的な見直し」こそが、私たちの手法
である。この作業をOSの全ての機能に渡って完了すれば、OSASKの基礎部分は完成する。

  当然のことであるが、この手法のせいで従来との互換性は失われてしまった。したが
って、UNIXのアプリなどはそのままでは動かない。その代わり、移植すれば自然にコン
パクトで高速なアプリに生まれ変わる。その証拠の代表は先に挙げた簡易テキストエデ
ィタが6KBということである。これはむろんC言語で普通に書いただけで、ソース上で何
かトリックを使っているわけではない。

  もちろん小さいのはテキストエディタだけではない。その他のアプリも、数百バイト
から数キロバイトの小さいものばかりである。私のページではこの成果を検証するため
にプログラムコンテストをやっており、常に最新の結果が挙げられているが、LinuxやWi
ndowsとはかなりの差をつけている。

  もちろん「設計の見直し」の効果はアプリのみにとどまらない。繰り返しになるが、
現在のバージョン(OSASK ver.2.6)はわずかに49KBであり、486マシンでもたった2〜3
秒で起動する。もちろんストレスなく使えるのである。これはCUIのOSであるMS-DOSの
半分にもならないインストールサイズであるし、起動時間もOSASKの方が何倍も速い。

  これらの成果を達成するために、偏執的な執念でチューニングした、なんていうこと
はない。ただアルゴリズムをじっくり検討して記述しただけである。逆に言うとチュー
ニングの余地はあり、それをやればさらに速くコンパクトになるだろう。しかしそれは
それなりに時間がかかるので、当面は手がけるつもりがない。

(互換性 - 高速エミュレータで -)

  先に「移植すれば自然にコンパクトで高速なアプリに生まれ変わる」と述べたが、し
かしながら、従来のアプリを全て移植するというのは現実的ではない。そこで私たちの
OSは従来のアプリとの互換性をエミュレータで解決することにしている。

  もちろん他のOSにもエミュレータはあり、これは取りたてて珍しい手法ではない。VM
wareやVirtualPCなどは有名である。また、LinuxのWineも有名である。・・・これらと
の違いは、エミュレータサポートをOS開発側が公式に認めているかどうか、という点で
ある。

  すなわちVMwareなどは単なるアプリにすぎず、OSの開発元が作ったわけではない。私
たちはエミュレータの開発を事前に予告している。これはOSの追加コンポーネントの一
つであり、したがってOSの機能である。それゆえLinuxの実行ファイルを、あたかも移
植済みの普通のアプリと同様にクリックするだけで自動的に実行される。ユーザはエミ
ュレータを意識しないのである(これはWindows98などでWindows3.1用のアプリも区別
なく実行・操作できるのと同じ事である)。

  また私たちは各種のエミュレータを揃えることを公約に掲げている。LinuxやFreeBSD
のバイナリが再コンパイルなしに使え、またもしLindowsが合法であれば(これは今後
の動向によりけりである)、Windowsエミュレータにも着手するだろう。・・・私たち
は、これをもって対応アプリ数が世界最大になることを目指している。

  エミュレータである以上、ある程度の速度低下は避けられない。しかしもともとOSが
速いことと、私が高速エミュレータ開発で実績があること(後述)、さらにOSASKがエ
ミュレータを効率よく実行できるように設計されていることなどから、一般に思われて
いるほどの速度低下はないと思われる。そしてその速度低下すら困るといういくつかの
アプリについては、OSASK用に移植すればいいだけのことである。

  なおエミュレータ部分に関しては、現在のバージョンでは全く着手されていない。今
はOSとしての基本部分を作り上げているところであり、エミュレータに着手できるよう
になるのは数年先になると思われる。

(学術的価値 - 大きな可能性 -)

  WindowsやLinuxの開発者は、何も意図的に大きしたり遅くしたりしているわけではな
い。むしろできることなら小さくて速い方がいいと思っているのはほぼ間違いない。に
もかかわらず、私たちのようなものがチャレンジする余地があるのである。如何にこの
分野の研究が手付かずであったかが察せられる。

  もしOSASKが実現すれば、ソフトウェア工学上の進歩は小さくないであろう。どうし
てこれほどの差が出たのか、それを考察するだけでも得られるところは十分にあるだろ
う(もちろんPMの竹内先生の意図は分かっているのでこれを私たちの目的にはしていな
い・・・私たちの成果を誰かが解析してくれればと思っている)。

  私たちのプロジェクトが与える影響を単に新しいOSの提供として捉えるなら、それは
狭い見方だと言えるかもしれない。より広い視野を持てば、一般的なソフトウェア改良
のノウハウ研究だと捉えることもできる。現在の世の中でもっとも巨大なソフトウェア
はOSであり、そのOSを対象に劇的な改良を試みているのである。私たちの開発したテク
ニックはオープンソースや各種ドキュメントによってすべて公開されるから、きっと広
く応用されることになるだろう。

  そのような技術が何の役に立つのか、それは今の私には分からない。しかしハードウ
ェアをできるだけ効率よく動かすことがソフトウェアの本分だとしたら、これこそソフ
トウェア工学上もっとも基本的な研究であるといえる。

  私たちのプロジェクトはソフトウェアの質の向上のみとどまらない。もしバイナリサ
イズが十倍以上も違うなら、おそらくソースの量も違うだろう。ということはそれなり
に生産性も向上しているのである。もちろん今の私たちはその精練されたコードにいき
なり到達できるというわけではなく、試行錯誤や実験の結果である。しかしノウハウが
蓄積されれば、試行錯誤や実験は減少して目的のソースに到達するのが早まるだろう。
そうなれば、生産性の上でも有効になると期待される。

(現状 - ソフトウェア)

  現在のバージョンは OSASK ver.2.6 である。毎月定期的に新バージョンがリリース
されている。

・PC/AT互換機版     OSのサイズ : 49KB
・FM-TOWNS版        OSのサイズ : 80KB

  起動時間 : 2〜3秒 (フロッピーディスクからの起動)
  バンドルアプリ数 27個  合計36.1KB

  マルチウィンドウ、マルチタスク、GUI、フル32bit

  今は実験的部分を正規仕様に置き換える作業を迎えた段階。高解像度サポートやハー
ドディスクサポート、エミュレータサポートなどがまだできていない。USBなどのデバイ
スもまだ利用できない。

  画面写真については、目次のところに挙げたのでここでは省略する。ここに挙げたウ
ィンドウデザインはWindowsによく似ているが、他にも3種類のデザインが存在する。も
ちろんどのデザインにおいてもアプリは共通に使える。

(現状 - コミュニティー)

  私のホームページが、OSASK開発コミュニティーのための中心地になっているが、この
アクセス数の推移がコミュニティーの成長を確実に証明している。

  このページのアクセス数は、以下のように急激に伸びている。

       (グラフ挿入)

    2000.3月末までののべアクセス数 :   2,050
    2001.3月末までののべアクセス数 :  12,279
    2002.3月末までののべアクセス数 :  77,457
    2002.6月末までののべアクセス数 : 112,851

  これを端的に言えば、半年で2倍以上というペースである。もちろん開発協力者数もこ
れに比例するように増えている。のべアクセス数が指数関数的に増加しているというこ
とは、もちろん月間アクセス数も指数関数的に伸びているということである(当初、月
間アクセス数を直接示すことでこれを説明しようと思っていたのだが、それは不規則に
変化しており全体的な傾向をつかみにくいと思われるので、のべアクセス数で説明して
いる)。

  また既に韓国の人々にも知られており、協力者も一人いる。今後も徐々に国際プロジ
ェクトの色を濃くしていくだろう。

  なぜこのような成長が可能なのか、それは私にも正確には分かっていない。多分以前
から潜在的なニーズがあって、それに当たったのではないかと思ってはいる。協力者に
参加の理由を聞いてみた。

・これまで誰もやろうとしなかったをやろうとしている
・未完成版を試しただけでも十分に可能性を感じることができる
・オープンソースでフリーソフトだから、完成すればみんなのためになる
・日本発である
・なにより「夢」を感じる
   etc...

  すでにOSASK計画は何度かメディアで紹介されており、日本の新OS開発のオープンソ
ースプロジェクトとしては、おそらく最大のコミュニティーを有しているだろう。また
紹介されたメディアが中高生向けのものだったこともあり、コミュニティーのメンバー
に占める学生の割合は、他と比べて高そうである。彼らはもちろん技術的に未熟である
場合が多いが、しかしOSASKへ関わりたいということを動機に、プログラミングの勉強
をしたりしている(掲示板などでよくそういう発言を見かける)。


3.具体的な進め方と予算

(今年度の予定)

(1)NEC PC-9801用のOSASKの開発 (8月〜10月)
(2)コンソールアプリケーションを移植するためのコンソールAPIを設計(11月〜12月)
(3)gccなどを移植し、OSASK上でOSASKアプリの開発を可能にする(1月〜2月)

  コミュニティーの拡大のためには、OSASKが本当に目標通りの軽さを達成していると多
くの人に実感してもらうことが非常に有効である。日本国内でもっとも普及していた486
クラスのパソコンはおそらくPC-9801シリーズであり、これに対応したOSASKを作って、
より多くのユーザにOSASKの軽さを実感してもらうことは極めて有効である。コミュニテ
ィーはこれを強く望んでおり、私も同感である。そのために(1)を行う。

  現在のOSASKでは、アプリの開発のために他のOSの助けが必要な「クロス開発」という
状態にある。これはパソコンを複数台所有しているユーザによっては耐えられるが、1台
しか所有しないユーザによっては不便極まりない状態で、この状況の改善が強く求めら
れている。OSASK上でOSASKのアプリを開発できるようになれば、この問題は解決できる
。・・・そのためにgcc(オープンソースのC、C++言語)を移植しようと考えており、そ
のためにはOSASKがコンソールをサポートする必要がある。これらのための作業が、(2)
、(3)である。

(来年度以降の予定)

・2003年度:
    ハードディスクアクセスサポート
    設計の再検討と精密なドキュメンテーション
    各種ドライバの作成
    いくつかの機能の実装

・2004年度:
    ネットワーク関係の機能のための設計
    エミュレーション機能の設計と実装開始

(その他)

・主に開発を行う場所:私は自宅で作業する。コミュニティーのメンバーとのやり取り
  はすべてインターネットを用いて行い、開発者用メーリングリスト、ホームページ、
  掲示板などを活用する(これらは既に用意してあり、利用中である)。

・使用する計算機環境:自宅にある自作PC/AT互換機を使う。CPUのクロックが700MHz程
  度のものである。今はWindows95を中心に使っているが、年度末にはOSASKがメインに
  なるかもしれない。PC-9801版の開発に必要なパソコンは、コミュニティーの方々から
  無料で貸していただいている。

・使用する言語・ツール:主にC言語と自作言語ASKA(あすか)。ASKAはC言語に良く似
  た文法を持つアセンブラであり、可読性に優れている。このASKAについて説明するだ
  けで本事業へ応募するための案件が一つできるくらいの内容があるが、これはIPAの助
  けを借りることなく実用段階にまでこぎつけた。紙面の都合があるので、ここでは説
  明しない。

・開発線表:申し訳ないが紙面が足りない。上記の"今年度の予定"では要求する詳しさ
  を備えていないと思われるが、今まで2年間でここまできたという開発ペースを何より
  の実証として、ご容赦願うものである。もしご質問いただければ、誠意を持って十分
  にご説明申しあげる所存である。

・開発にかかわる時間帯と時間数:私はOSASK開発のために、進学も就職も、アルバイト
  もしないことにした。それゆえ、ほぼ毎日、朝起きてから夜眠るまで、体力・気力の
  持つ限りフルタイムで開発に従事している。平均して月に2日ほど、友人との会合があ
  ったり、IPAの説明会へ出席するなどの理由で外出するが、それ以外は在宅して開発し
  ている。だいたいの作業時間は、午前9時くらいから午後11時くらいまでである。曜日
  は関係ない。

・外注:予定していない。しかしコミュニティーのメンバーが自発的に各自の得意分野
  を発揮してもらうことで、手伝ってもらうことは常にありうる。しかしこの場合でも
  経費はかからない。これによって得られた私に対する負担軽減は、より開発を早める
  ことでコミュニティーに還元する。

(予算 - 300万円 -)

  予算は300万円をお願いしたい。前述のように私はフルタイムで開発をしたいので、生
活を維持するために必要な収入が全くない。国民年金の支払いや奨学金の返済に加え、
IPAから所得が得られることになれば健康保険の支払いもしなければいけない。また私と
しては来年の3月から7月の間もフルタイムで開発を続るための貯金もほしい。35万円×
7ヶ月で245万円(=20万円×12ヶ月)。これに管理組織への支払いの55万円を加えて300
万円とする。

  これは私にとってはぎりぎりの金額額であるが、PMの基準に照らして不相応であると
いうことなら仕方がないので減額するのもやむをえないと思っている。「5.特記事項
」にもあるようにこちらは不足分を残り少ない貯金からまかなうつもりである。これは
つらいが仕方がない。なお、今年度の未踏にも応募したがそこでは380万円を予算につけ
た。

  IPA基準での備品の購入予定はない。私への人件費の中からADSL回線設置のための費用
を捻出し、コミュニティーとのやりとりをより円滑にしたいと思っている。


4.提案者の腕前を証明できるもの

(実績の紹介 - 多くのフリーソフト -)

  以下は例外なく全てオープンソースである。全て私のホームページから最新版をダウ
ンロードできる。ソースがオープンなのでユーザが他のOS向けに改造しようという動き
も盛んである。

  1996年  FM-TOWNS用のPC-9801エミュレータ "V98"をフリーソフトとして開発。63KB
          程度の実行ファイルながら、当時としては画期的なエミュレーション速度を
          達成した(486-66MHzのTOWNSで、386-33MHzの98と同等の速度)。

  1998年  C言語風アセンブラ"ASKA"の言語仕様を設計。実装・ドキュメントは今原修
          一郎氏が担当。Windows用。

  2000年  OSASK ver.0.0をリリース。この後毎月OSASKのバージョンが0.1ずつ上昇。

  2001年  OSASKアプリを効率よく生成するリンカ"linkset0"を開発。この後も改良が
          続き、現在は23.5KB。これは32bit用のリンカとしてはおそらく世界最小。
          一般的にはリンカは60〜200KB程度の大きさである。Windows用。

  2002年  一般的なアセンブラ"NASK"を開発。若干の機能制限があるものの、これも世
          界最小。44KB。一般的なアセンブラは130KB〜300KB程度の大きさである。Wi
          ndows用。今後時間があるときに改良し、最終的には機能的にも性能的にも世
          界一を達成して、多くの人々に愛されるソフトウェアにしたい。

  ここには書ききれないので詳細は略すが、OSASKアプリを作ろうという入門者向けのサ
ンプルプログラム集、プログラミングガイド、各種ライブラリなども作ったし、OSASKを
作るのに必要な各種ツール群も作った。

  しかし、結局のところ現在のOSASK ver.2.6こそ私とコミュニティーの能力を証明する
ものとしてもっともふさわしいと思われる。この詳細については先に示したので、ここ
には書かない。

  開発は主にフリーのC言語を使っているが、C++やASKA(自作言語、C言語風アセンブラ
)を使うこともある。


5.特記事項

(いきさつ)

  私は大学・大学院在学中に奨学金で学費をまかない、アルバイトで貯金をしてきた。
今はその貯金を少しずつ使ってOSASKの開発に専念している。これは私の趣味であり、自
分の貯金で自分の好きなことをしてきただけであるから、もちろんなんの問題もない。

  しかしながら最近は貯金もだいぶ少なくなり、もうそろそろアルバイトや就職など、
なんらかの経済的収入のことを考えなければいけなくなってきた。これは仕方のないこ
とであり、私はまあそれでも構わないと思っている。・・・しかしちょうどOSASKコミュ
ニティーが盛り上がってきて、今一番大切な時期を迎えているように思うのだが、その
時に開発に専念できないのはコミュニティーにとっては過酷すぎる試練かもしれない。

  そんなわけで、もし私たちの活動がIPAの基準に照らして支援にあたいするなら、支援
していただきたいといういきさつで今回の応募にいたった。それゆえ、もし私たちより
も支援すべき個人・団体が他にあるようなら、喜んで不採択に甘んじる所存である。

  もしかしたら私の年齢(4月の時点で26歳)が若くないといって不採択になるかもしれ
ない。それなら私は聞きたい。IPAはOSASK ver.2.6がない状態で、私の言葉を信じる気
になれるだろうか。もし私がPMだったら信用しないだろう。だから私にとってOSASK ve
r.2.6を書き上げるために要した時間は回避できないものであり、そのために年をとって
いることに対して少し寛大になってほしいと思う。また私だって研究が好きだから、当
時は博士課程に進むこともまじめに考えていたのである。しかし私の性格上、プログラ
ミングと研究を両立させることは大変難しい。それゆえに進学をあきらめて開発に専念
しているのである(進学していれば現在D3)。だから学生じゃないという理由で不採択
になるのも不本意である。開発に対して不真面目だったら採択したということになるか
らである。

  ついでに書いておくと、このような大規模プロジェクトはYouth向けではないという理
由も不本意である。今年度、私は未踏本チャンに応募し、今回以上の時間をかけ、丁寧
にOSASKを説明した。それなのにPMは不採択にした。私たちがどれほど準備に時間をかけ
ているか考えてほしい。2度の応募で確実に2ヶ月は開発がストップしている。だから内
容がYouth向けであろうとなかろうと、未踏本チャンが採ってくれないのだからYouthで
採ってもらえないなら今年度は不採択なのである。もしOSASKがIPAにとっての目的に適
うということなら、プロジェクトの規模に関わらず採択してほしい。

(是非ヒアリングの機会を!)

  私たちとしては選ばれるべくして採択された、ということが本願であって、誤解され
て不採択になるのはもちろん、都合よく誤解されて採択されることも不本意である。こ
とわざに百聞は一見にしかずというが、OSASKにはまさにこの言葉の状況である。私が延
々と文章を連ねるよりも、一度動いているOSASK見ていただける方がずっと正確な理解が
得られるであろう。それゆえに、私はヒアリングの機会を強く望んでいる。


6.将来のソフトウェア技術について思うこと・期すこと

(ハードとソフト)

  このテーマで書きたいことはたくさんあるが、紙面も尽きているので要点だけ簡潔に
述べたい。

  私はソフトにできないことだけをハードにやらせる、というのがあるべき役割分担だ
と信じている。逆に言えば、ソフトにできることをハードにやってもらうというのは、
ソフトウェア技術がハードウェア技術に大きく劣っている証拠である。ソフトは容易に
改良できるから「ソフト」なのであり、ハードは容易には変更できないから「ハード」
だったはずである。それなのに今では「既存のソフトを如何にして実行するか」のよう
な雰囲気でハードが設計される場面がいくつもある。これではどちらが「ハード」なの
か分かったものではない。

  互換性解決や効率追求などは、その最たるものである。OSASKが示している(将来にわ
たって示そうとしている)ように、ハードウェアの改良なくして、ここまできるのであ
る(できそうなのである)。ハードがハードにしかできないことに専念してもらうため
にも、ソフトウェア技術はもっともっと進歩していかなくてはいけないと思われる。

  ハードは理論的限界値を決める。そしてソフトはその理論値が出せるように努力する
。ハードはハードの都合だけを重視して最大の理論値を掲げられるようになるべきで、
そしてソフトはそれを十分に発揮できるように努力する。これこそ私の信じるハードと
ソフトのあるべき姿である。そしてこれこそ、もっとも少ないコストで最高の成果が得
られる黄金律であろう。

--
    川合 秀実(KAWAI Hidemi)
OSASK計画代表 / システム設計開発担当
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/


ML番号でジャンプ
ML単語検索