このページは何か †
0.3.0α7以降のロードマップを議論する場所です。
経緯 †
uIPの移植が行われたことにより、ネットワーク対応がかなりの進展をしています。
ネットワーク対応を柱としてそろそろ 0.3.0をリリースしても良いのではという声があります。
その辺りを議論しましょう。
決めたいこと †
- 0.3.0リリースのための必須条件
- α7以降のロードマップ
- Baysideさん、junjunnさんの成果の取り込み→本人降臨希望
- 開発者それぞれの果たす役割
みんなの意見を材料にひげぽんが決めた事 †
ひげぽんは以下のことをやります。(以下のこと以外はやりません)
取り組みまでは2本立てで1月末時点で軌道修正の余地を残します。
- FreeBSDからNICドライバの移植を試みる
- ネットワークサーバーの実装・APIの提供
途中経過まとめ †
ななしAさんによるフロー提案 †
基本的に0.3.0はコアの都合だけを考えてリリースする。α段階でころころ仕様が変わるのを追い掛けるのは論外なので、ユーザーランドでのアプリ開発はコアが定まってからやった方が良い。
- FreeBSDからNICドライバ移植→VPC,VMW,実機サポート
- 最低限のBSDソケット互換APIの提供
- HTTPでソースを読み取るだけの超簡易HTTPクライアント
- 0.3.0リリース(コアの開発は0.4系に移行)
- リリース宣伝で人集めをして、ネットワーク系アプリを充実させる(2chブラウザとか)
- 0.3.1リリース(集まったアプリを入れたリリース。コアはバグ修正のみ)
Gakuさんの意見(をひげぽんがまとめた) †
- ネットワークサーバー1つ実装
- インターフェースはシンプルにread/write/open/close/wait
- ドライバの移植はせずQEMUだけで(必要な人が他の環境に対応させればよい)
コメント(適宜コメント欄からまとめにまとめていきましょう) †
コメントはありません。 コメント/Mona/開発版/0.3.0/α7以降のロードマップ?
- 自分が決めた事を書きました。 -- ひげぽん
- # 意見も出揃ったようですのでjunjunnさんのご意見待ちなかんじでしょうか>ALL -- ひげぽん
- QEMUやAPIへの懸念は0.3.0正式リリースを念頭にしていますが、α7リリースを念頭にしているのであれば、区切りとして現状で出した方が良いでしょう。 -- ななしA
- なるほど。考えて見ます。 -- ひげぽん
- 私みたいな外の人(サードパーティー)が安心して開発できる環境を提供するのが正式リリースだ、という前提で書きました。ですから中の人の都合は考えていない意見ですので悪しからず。 -- ななしA
- IRCで、とりあえずはQEMUだけで動くのでも良いのでは?、インターフェースもBSD互換にこだわらず、必要なものが使えるread/write/close/open辺りがあればよいのではとの意見をいただきました。 -- ひげぽん
- NineBirdでQEMUの動作が怪しいような報告がありますが、uIPでも同様でしょうか。DNSが使えないとかなり痛い気がします。 -- ななしA
- uIPでは今のところ怪しい動作は見られません。-- ひげぽん
- NineBirdではDNSが引けないというのと50KB以上のHTTPが受信できない2点が報告されていますが、uIPでは同様の操作が可能だということでしょうか?(そうでないと、この文脈では動作が怪しくないという回答になりません) -- ななしA
- HTTPを試すことができたので報告いたします。画像ファイルping.png72.4KB中8.44KBで転送がとまりました。HTMLファイル test.html 171KB中42.63KBでとまりました。-- ひげぽん
- やはりQEMUの挙動はおかしいようですね。この状態では「とりあえずはQEMUだけで動くのでも良い」とも言っていられないので、以下のどれかを実行する必要があるのではないでしょうか。
1. QEMUを直す(TAPサポート自体が非公式パッチ)
2. Bochsで我慢
3. 他のエミュをサポート
「必要な人が他の環境に対応させればよい」とありますが、3をやるとすると自分自身がその「必要な人」になってしまうわけです。ターゲットはVPCかVMWということになると思いますが、VPCはフリーではないので恩恵を受けられる人が限られてしまいます。そうなるとVMWP(フリー版)をターゲットにすることになりますが、それならいっそのことドライバの移植技術を確立して主要NICを一網打尽にしてしまえば、エミュだけでなく実機までサポートできてしまうのではないかという素人考えです。 -- ななしA
- インターフェースを互換にしておくと、書いたアプリがMonaで思った通りに動いてくれなかったときに、「同じコードが他OSでは動いている」という根拠で問題を切り分けることが出来ます。そうでない場合、アプリの問題なのかプロトコルスタックの問題なのかドライバの問題なのか見当が付かなくてデバッグが難航する気がします。外の人がアプリ開発するのに、プロトコルスタックやドライバまで追い掛けないと問題の切り分けすら出来ないというのは敷居が高過ぎます。ましてやQEMUは爆弾持ちのようですし。別に完全BSD互換でなくても構いませんが、他OS併用での検証で流用できる程度の互換性(多少の#ifdefが必要なくらいは許容範囲)があると嬉しいということです。 -- ななしA
- QEMU以外については、サーバのインタフェースが決まれば、やりたくなった人が後で実装を追加すれば良いと思います。自分がQEMUユーザだってのもありますが。(#osdev-jより転載 -- Gaku
- あー、と、追記。「uIP移植」を見て書いたので、移植前提ですな。思うにシンプルインタフェースを切って使い回すのが良いかなと。 -- Gaku
- 思った事を書いてみます。(見た目が忙しい気がするので、以降、署名略です) -- Gaku
- 0.3.0α7以降のロードマップらしいですが、話題になってるネットワーク関連です。
- まず、「今現在、最終的にこうしたい」と「直近でこうしたい」は切り分けるモノだと思います。次に、「実用ネットワーク機能」や「BSD互換ソケットAPI」が直近で欲しいなら、作る、で良いと思います。が、「議論/Monaは初志を忘れていないだろうか2006」より、移植でさくっと済し、別の所に注力」てのを読んで、
- ネットワーク部分はお手軽に済ませたいのかね。
- まず全体を経験するのは必要だよね。(後で適正な作りを決めるためにも)
- と思い、また、ネットワーク機能に関して、
- 今すぐに、ネットワーク機能があれば遊びには使える。
- 今すぐに、実用ネットワーク機能は欲しくない。時間がかかりそうだから。
- と思うので、直近について以下の案はどうでしょうか?
- ネットワークサーバを1つ実装。
- uIPなりで、ネットワークサーバを実装。
- インタフェースはごくシンプルなものに。(read,write,open,close,wait,くらい?
- ならば、ごく少ない負担で実装できる、インタフェースも決まるので下の実装は変えられる、使う側もすぐにおぼえられる、てな利点があるかと思います。
- インタフェースはしばらく使い回せると良いな、とか、サンプルあった方が覚える側は楽だ、とかは思います。
- 私はMona本家のネットワーク機能に関してはタッチしないで行きたいと思います。複数の開発者がいてもソースの統合性や方向性の面でデメリットになる事もあって足を引っ張りたくありませんのであえて参加しない方針です。
NineBirdのソースに関してはライセンス完全フリーですので利用してもしなくてもどうぞ何でも勝手にやってください。
もちろん、必要ならばいつでも喜んで参加させてもらいます。
あとすいません私宛のメッセージがある場合はjunjunnページをageるかもしくは2chのスレッドの方に書いて貰う方が見逃しがないので確実です。(^^; -- junjunn
- httpクライアントにインスパイア(wされたんですが、httpでexeをダウソして実行するアプリなんてどうでしょう?これがあればアプリを開発するときに、毎回ディスクイメージを作ってエミュを再起動させる手間から開放されますよ。 --
- ↑このモデルだとホスト(開発機)側にWEBサーバーが必要ですが、今のhttpd on Monaを改造してファイルのpostを受け付けるようにすれば、開発機からバイナリを送り込んでデバッグできますね。こうなると見掛け上の開発スタイルがWindows CEアプリをエミュに送り込んでデバッグするのに似て来ます。 --
- おもしろい! -- ひげぽん
- あとは、ネットワークAPIを提供も0.3.0に含めるかどうかも問題ですね。(大変そうですが -- ひげぽん
- httpクライアントを実装するために最低限必要なBSDソケット互換APIだけを提供すれば良いのではないでしょうか。開発者にとっても既知のAPIならマニュアルやリファレンスがなくても何とかなります。独自のクラスライブラリAPIとか頑張って作っても、ちょっと知ってる人はBSD互換APIの方を使いたがる気がします。 -- ななしA
- なるほど。BSDソケット互換APIは良さそうですね。ちなみにuIPにはhttpクライアントのコードも付属しているので多少は参考になるかもしれません -- ひげぽん
- NICドライバの完成とは何を指していますでしょうか?インターフェースを固めることでしょうか。 -- ひげぽん
- FreeBSDから移植→VPC,VMW,実機サポート。FreeBSDのものが動けばドライバを自前でがんがん開発する必要がなくなるので、とりあえず動けば良くて、インターフェースの整備には拘らなくて良い気がします。 -- ななしA
- なるほど。確かにその状態はかなりうれしいのですが、正直やり遂げられるか、かなり心配です。 -- ひげぽん
- ぶっちゃけ、やり遂げなかったらいつまでも使い物にならないと思います。実機まで視野に入れると自分でスクラッチから書くのはかなり困難ですし、他人にやってもらうとあれだけ毛嫌いしていたブラックボックスになってしまいますよ。 -- ななしA
- おっしゃるとおりですね>使い物にならない。ただNICドライバに関してはブラックボックスでも良いと思っています。機能も限られていますし、I/Fも限られています。といったところで私しかやらなそうですが・・・ -- ひげぽん
- NICドライバが完成したら0.3.0を正式リリースしてもいいんじゃないかと思います。そのくらい大きな節目だと思います。せっかくのネットワークなんだから簡易ブラウザとか欲張りたくもなりますが、リリースはコアだけという原則に従えば、コア以外の要因でリリースが左右されるのは問題です。正式リリースならスラド効果もある程度は期待できるので、クライアントがないということを逆手にとって、ブラウザとかを作ってみたいという開発者を引き込むという戦略も立てられます。 -- ななしA
- uIPの成果が出たのでα7をだすかな? -- ひげぽん