マルチカーネルOS開発中...
マイクロカーネルを発展させ、ついにはカーネルを二つ同時に
実行してしまうアーティキチャを考えています。
それらのカーネルは一つの共有メモリーを持たせて、
オーバーヘッドによる低速を抑えるつもりです。
ご意見を。 【マルチカーネルOSを脳内稼働中】
いまは、二人目 OSASK とかいうのも開発に長いことかかってるな
ひょっとして本当に >>1 が本気だったとしても、
ネタかマジか判断に何年も掛かりそうだな。
見てる側としては、カメラで開発している最中の写真とかうpしてくれた方が、
より真実味を帯びてくると思うんだが 開発風景
ttp://www.amazingty.com/images/dnotytt0034.jpg
ttp://www.dennio.com/tgp/phole2/amtpeehole0003.JPG >>167
タイ━━━━||Φ|(|´|Д|`|)|Φ||━━━━ホ >>1
まずは理想を全て捨て、只普通のOSを作ってみるべきでしょう。
それからマルチカーネルだろうが、好きにしましょう。
ってか普通のOSを作れない人が、マルチカーネルなOSを作れません。
普通のOSを製作しているMonaプロジェクトがどれだけ時間が掛かっているかを
考えましょうね。
考えることはサルでも出来る。その程度の思想は考えつくされてきているはずである。
なのに現実に全く出て来ていないのは、みんなの技量の問題ではなく、
成果が出ないことの表れである。
まぁ考えること、ガムシャラに頑張ることは悪いことではない。
それをのちのちに有益な財産としてくれれば。 なんだかさ、Intel な MacOS X で Darwine 完成する方が楽そうに見えるのは、私だけでしょうか?
Linux API もついてるし.... >>1はそんな簡単なこともできないのか?
2個のタスクをリアルに同時実行させるなら、2個のPCを合体させてやりゃいい。 PC/ATでタスクスイッチってタイマー割り込みなんだよね。
割り込みとかはOSの専権事項であるわけで、Winとかも自分勝手に使えると思ってる。
マルチにOSを走らせた場合は、タイマー割り込みとかはどう調停されるんだろう。
片方のOSが無効化しているときはもう片方のOSに割り込みが届かなくなってしまう?
結局>>1はタスクスイッチが"できる"ものと考えてOSを作っているが、タスクスイッチはOSが"する"もの。
アイディアのスタートする立ち位置がすでにOSではなくアプリケーションなのが最大の間違いだな。
クマ
>>167 >>168 >>171
怖くて見れねーよ。一体何の画像なんだ?
>>167
こんなにしたら、どっち使ってるか分かんなくなっちゃうじゃないか!
ってか、これじゃぁ、リークしまくりにならんのか?
[ ゚д゚]y-~~~ デフラグガカンリョウシマシタ
/[へへ
、、。。。いいうええごさししすすせせそたつつつつてててでにににののははままもよらりるるれ
ををををををアィイオカカカキクチッテドネネネバヘマメモャリルルルローーーーーーー一二低
共同実展意抑持時有発考行見速 今ある代表的なカーネルって
・モノシリックカーネル(Unix、Linux系)
・マイクロカーネル(Minix,Mona)
・ハイブリッドカーネル(Mac OSX)
こんなもんか?Windowsはどうなってんだろ?
>>1のマルチカーネル云々はどうでもいいんだが
次世代カーネルみたいな研究ってされているのかな? Mac OS をハイブリッドというなら WinNT もハイブリッドだろうなぁ
つ ttp://wiki.osdev.info/?JP-OS すれ違いかもしれないですが。
今後メインのカーネルをハードウェアないし、マイクロコード等で実装するような動向はないのですか??
それこそ脱x86みたいな マイクロコードで実装、というのは基本的に廃れた技術。
なぜかというと低水準な機能をハードウェアで剥き出しで実装して、あとはコンパイラに
任せる、というRISC流の方法であれば、ソフトウェアの柔軟性のご利益があるわけだが、
そこをマイクロコードでハードウェア化しちゃうと、ちょっとした性能向上とひきかえに、
柔軟性がなくなってしまう。「柔らかいハードウェア」も研究されたことはあるが望み薄
(と俺は見ている)。
そういう高水準の機能をワイヤードロジックで実装しようってのは正気じゃないでしょう。
複雑過ぎる。
RISCがベストならx86はどうなんだという話になるけど、x86は結局、過去の遺産の継承の
ベネフィットと利益率が高くかつ大量生産(数だけで言えば組込みRISCも結構行くが)
という規模の利益が、技術的な議論を凌駕しちゃってる。
今後ハードウェア化する意味のあるのは、特に並列化がらみでソフトウェアでの実装が
面倒な並行・並列処理のプリミティブとかぐらいじゃないかな、と(GPUとかを別にすると)。
あとはIBMのAS/400みたいな方向性だろうけど、あのレベルの仮想化はハードウェアで
実装するより、JavaVMとか.NETのCILとかLLVMのようなソフトウェアのレイヤで実現する
ほうが現実的だと思うね。 >>1の考えてるような、複数のカーネルを走らせて相互監視させてひとつでも死んだら他のカーネルが叩き起こすみたいなことって本当にできるのか? >>191
sun1 だったかsun2 だったか、68000 の片割れがこけると、もう一方が叩き起こしていた、らしい。 >>193
あーその伝説は微妙にウソ。
ttp://www.st.rim.or.jp/~nkomatsu/mc68k/MC68000.html
ここに詳しく書いてあるが、初代68000はページフォールトを起こした時に、
コンテキストを保存してページを入れ替えて再開、ということができなかったので、
フォールトを起こしたらプロセッサを止めて、別のプロセッサがページを入れ替え、
入れ替えが済んだら元のプロセッサの実行を再開、ということをやったマシンが
あった、という話。 >>195
伝説でしたか。
でもこのトリックは、ページング関連ではなくてスーパーバイザ命令の割り込み関連の問題の回避のため、ときいているのですが。 最近の仮想化対応のハードならなんでもありなんだろうけど、
そうでなければデバイスドライバに偽装するのが現実的?
例えば新しいデバイスに対応したOSaと古いデバイスに対応したOSbがあって、
両方サポートしたOSがない場合、ダミードライバが呼ばれた時に相手のOSにスイッチして、
その本物のドライバに仕事させて、それをダミードライバにトンネリングする。
つまり、適当なタイミングないしサポート外のデバイス(ダミードライバ)が呼ばれたら
相手のOSにスイッチするようにすることで、
個々のデバイスの詳細を知らなくてもそれぞれのOSドライバの作り方さえ知っていれば、
事実上デバイスフルサポートのOSが手に入ることになって、
これって考えてみるとおいしい話じゃないだろうか?なんか落とし穴あるかな? 結局これって分類的にはハイブリッドカーネルなんだろうか? マルチカーネルにしたらマルチタスクの実装がややこしくならない? posix系とかのヘビーなOSに軽量のリアルタイムOSを同居させて、
リアルタイムカーネル化とか言ってた奴の場合はどうなの? 共有メモリにするんだから、必然的にメモリ管理も共有することになる
なので「親カーネル」は必要ないな 奴隷にいかに仕事をさせるかというテーマかのう?
カーネルも階級制度が必要な時代になったのか?ww カーネル・サンダースX2
980円セット2個でお大尽なOSw ああ、2005年のスレか・・・
今こんな事言ってたら、相当のバカだったね 誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
RTRV6P0QE1