【次世代言語】D言語でOSを作ろう【Monaの移植?】
IronD on .NET
96 :
デフォルトの名無しさん:2006/10/14(土) 21:28:29
いきなりスケールのでかいスレタイでつね
97 :
FD:2006/10/21(土) 16:18:40
D言語でOS作成ですか?面白い課題だと思います。
クラスを使用しなければ、C言語を少し柔軟にした言語使用なので、極端難しくないです。
参考するなら、C言語で書かれたOSソースを、D言語のプリプロセッサ機能を削除したソースへ置き換えることからはじめるのですかね?
組み込みOSでは基本的にC++特有な機能を使用しないのが一般的です。
コメントだけC++で中身C言語と言うものをよく見かけましたが・・・
98 :
デフォルトの名無しさん:2006/10/21(土) 17:20:41
あれじゃね?
C言語で書かれたソースをD言語に変換するツール作成すれば一発じゃね?
>>97 > 組み込みOSでは基本的にC++特有な機能を使用しない
組み込みだとサイズ/速度のオーバヘッドがデカいからじゃないかなあ。
100 :
FD:2006/10/21(土) 20:45:20
>>99さん
それもありますが、newなどメモリのどこに配置されるか分からないので、メモリの制限された世界では使いにくいのです。
OSカーネルになれば、メモリ管理はレガシーな方法とった方が安全だからです。
ただし、しっかりとメモリ管理された環境下であればC++特有の機能は作る側に利点があると思います。
「しっかりとメモリ管理された環境」ですからカーネルの基本的な領域には適用しにくいです。
例えばC++で記述されたというL4Ka-Pistachioのソースを参照すると、
APIの領域(外向きの顔)はC++ポイですが、内部制御はC++と言うよりC言語です。
C++の仕様自体にC言語仕様を含んでいるから当然なんでしょうけど・・・
>>98さん
のいわれている通り非常に近い仕様ですから、可能だと思います。
カーネルでも基本的なところを製作後は、言語仕様に関係なく開発できるのがベストだと思います。
D言語が優れているところはC言語より柔軟であると言うところ、プリプロセッサ機能を搭載していたら、そのままD言語に移行できてしまいます。
なお、D言語でもいいですけど、日本でカーネルを再勉強できる機会は少ないです。
OSを作ると言う企画は面白いと思います。
まずは、簡単な部分から作らないといけませんね。
私も個人的に勉強したい領域です。
102 :
デフォルトの名無しさん:2007/01/09(火) 06:23:10
がんばれ
>>101 組込みはメモリの動的管理自体をやらないやつらが多い。
あらかじめ最大値を決めてそのサイズ分確保してる。
組み込みの場合、何よりも「落ちないことが保障できる」ことが重要だからな。
さらに言うと
「落ちても速やかに復帰して動き続ける」
だよな
つーか組み込みは、やる事決まってるからだろ
MoNaじゃなくてBSDをDで再実装なら協力する。
>>101 ガベコレの問題が有って、今のガベコレ言語は、
帆にゃらら言語のアプリ→OSへのメモリ要求
帆にゃらら言語のアプリ→OSからもらったメモリをゴミ扱いにする
帆にゃらら言語のアプリのガベコレ→さっきゴミにしたメモリを再利用可能ににする
ってな流れだけど、DでOSを書くと言うことはこのOSに頼んでる部分を書く必要が有って、
でも、DでOS書く訳で。と言うループに陥らないために
OSのメモリ管理=D言語のメモリ管理という部分を設計してしまう必要が有るわけ。
手を抜こうと思えば、抜けるけども。
109 :
デフォルトの名無しさん:2007/08/26(日) 07:07:10
/
これって実は言語とかは全然関係なくて、
GC用ヒープがシステムメモリとして何百メガか確保されるだけでは?
ただ、これだとアルゴリズムがコンカレントGCしか選択できないな。
111 :
デフォルトの名無しさん:2007/09/06(木) 22:17:18
age
今のGCって論理アドレス空間で整頓してるんだよね?
カーネルだと物理アドレス空間を触ることになると思うんだけど、
そっちだとより効率的にメモリを整頓できたりするの?
むしろ、このマルチコア時代には、1CPUを丸々メモリ管理に割り当ててもいいんじゃないかと思ってる。
>>62 初めて来たけどこれObjC組み込めるのか?
期待age
116 :
デフォルトの名無しさん:2007/09/23(日) 12:50:31
sageてしまったorz
保守
118 :
デフォルトの名無しさん:2007/12/05(水) 22:05:50
そういや任天堂がC++のOS作ってたね。ライセンスは知らんが成果も発表してた気が。
任天堂なら作れるかも
C++のOSって既にあった気がするんだが
まさか Mona とか
実装は知らんがインターフェースがC++だったのはBeOS
122 :
デフォルトの名無しさん:2007/12/13(木) 15:55:27
Nintendo esだろ
123 :
119:2008/01/07(月) 14:54:13
>121
ああそれそれ。あくまでインターフェイスの話なのか、あれ。
ところで D で TRON ってどうよ、とかいう無茶振りをしてみるテスツ
今更使い道はないんじゃない?
TRONの需用自体がITRONくらいで、そこにGCはヘビーかと。
携帯でも Java なんだから gc がヘビーってこともない機器もあるかも
そこであえて超漢字を
携帯の Java は PC みたいに軽くないので、昔のBasicみたいにクラス作らないでかく
Basicを引きあいに出さなくてもCでいいんじゃね?
>>125 そうでもない。
最近の携帯は、かなり軽いよ。
今、携帯Java(MIDP2.0)上でJavaベースのOS作ってるよ。
うまく行けば、このOSの上にJava2SE実装して、パソコン用のソフトも使えるようにしたいな。
131 :
デフォルトの名無しさん:2008/04/15(火) 13:15:53
結局OS作れませんでしたスレか
134 :
デフォルトの名無しさん:2009/07/21(火) 17:53:46
D言語ってガーベージコレクションもってるよね。
これって、どう動くかと言えば
<====メモリ===> <====メモリ===>
アプリケーション1+ガベコレコード アプリケーション2+ガベコレコード
↑↓
OS
<■■■■■■■■■■■■■■■■■■■■■■■■■■■>
実メモリー
というイメージになることが多いと思うんだけど、
(最近だとこの辺はもうすごく手が入っててイメージです状態だろうけど
アプリからリニアにアドレスが見えるわけだし、ガベコレはそのリニアアドレス
を操作してるんだからこうだよね)
でも、これを
<====メモリ===> <====メモリ===>
アプリケーション1 アプリケーション2
↑↓
OS+カーネルが各アプリのガベコレを制御
<■■■■■■■■■■■■■■■■■■■■■■■■■■■>
実メモリー
ということになれば、マルチスレッド、マルチコア、マルチキャッシュの
cpuでのパフォーマンス的にも色々と行けるような気がするのね。
もうね、まったく新しいosというレベル。
目指すならここを目指すべきだと思う。
135 :
デフォルトの名無しさん:2009/07/24(金) 20:19:35
D言語の中の人の主張はそれだけどね。
何で俺が言語にGCを実装しなきゃいけないんだって人。
D用のGUI・画像・ファイル処理系のライブラリが充実されたら手を出してやる
C用のGUI・画像・ファイル処理系のライブラリが充実してる
138 :
デフォルトの名無しさん:2009/08/10(月) 12:49:13
age
139 :
デフォルトの名無しさん:2009/08/11(火) 12:41:47
プロセスを作成したらヒープを作成して、
システムコールを呼んだら、ヒープ内にメモリブロックを確保したり解放したりして、
プロセスが終わったら、ヒープを解放する。
140 :
デフォルトの名無しさん:2009/08/11(火) 13:48:50
それから動的にメモリを確保するときにシステムコールを呼ぶように、D言語自体を書き換えすることが必要。
>>140 お前D言語のこと何も知らずに書いてるだろ
言語自体なんか書き換えなくてもPhobosの書き換えで済む
>>140 メモリ確保ごとにシステムコールってどんなネタだよ
143 :
デフォルトの名無しさん:2009/08/27(木) 18:55:58
Schemeってガーベージコレクションもってるよね。
これって、どう動くかと言えば
<====メモリ===> <====メモリ===>
アプリケーション1+ガベコレコード アプリケーション2+ガベコレコード
↑↓
OS
<■■■■■■■■■■■■■■■■■■■■■■■■■■■>
実メモリー
というイメージになることが多いと思うんだけど、
(最近だとこの辺はもうすごく手が入っててイメージです状態だろうけど
アプリからリニアにアドレスが見えるわけだし、ガベコレはそのリニアアドレス
を操作してるんだからこうだよね)
でも、これを
<====メモリ===> <====メモリ===>
アプリケーション1 アプリケーション2
↑↓
OS+カーネルが各アプリのガベコレを制御
<■■■■■■■■■■■■■■■■■■■■■■■■■■■>
実メモリー
ということになれば、マルチスレッド、マルチコア、マルチキャッシュの
cpuでのパフォーマンス的にも色々と行けるような気がするのね。
もうね、まったく新しいosというレベル。
目指すならここを目指すべきだと思う。
144 :
デフォルトの名無しさん:
GikoOS