(・∀・)yossy </b>◆FlasH.X1/s <b><><>03/01/12 21:44<> 独自にOSを作っているまたは、作ろうとしている人たちのための <br> スレッドになればと思います。 <br>  <br> Monaプロジェクトページ <br> ttp://mona.sourceforge.jp/ <br>  <br> OSをつくろうpart4 <br> http://pc3.2ch.net/test/read.cgi/tech/1037096449/ <br> OSをつくろうpart3 <br> http://pc3.2ch.net/tech/kako/1027/10270/1027080631.html <br> OSをつくろうpart2 <br> http://pc3.2ch.net/tech/kako/1024/10244/1024411711.html <br>  <br> プロジェクトメンバーになりたい方は、 <br> higepon@users.sourceforge.jp までメールをどうぞ。 <br>  <br> 最新のイメージファイルは以下のURLから落とせます。 <br> ttp://mona.sourceforge.jp/Download.html <br>  <br> ソースファイルの閲覧はここからできます。 <br> ttp://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/mona_v1.0/ <>OSを作ろうpart5
ひげぽん<>sage<>03/01/12 21:47<> ｽﾞｻ━━━━⊂(ﾟДﾟ⊂⌒｀つ≡≡≡━━━━!! <>
デフォルトの名無しさん<>sage<>03/01/12 22:00<> 新スレおめ <>
デフォルトの名無しさん<>sage<>03/01/12 22:01<> 3GET、ごめんなさい･･･（確○犯 <>
デフォルトの名無しさん<>sage<>03/01/12 22:01<> あ・・・ <>
デフォルトの名無しさん<>sage<>03/01/12 22:02<> 嗚呼･･･ <>
デフォルトの名無しさん<>sage<>03/01/12 22:02<> 嗚呼… <>
デフォルトの名無しさん<>sage<>03/01/12 23:22<> 乙 <br>  <>
山崎渉<>（＾＾）sage<>03/01/13 18:29<> （＾＾）         <>
デフォルトの名無しさん<>sage<>03/01/13 22:18<> 読んでみた。 <br> 前半は難解だったけど最後まで読んだら <br> ネットについての理解が格段に深まった。 <br> ありがとう。 <br>  <br> 他の人も、煽ってばかりじゃなくて <br> 一度読んでみるといいと思う。 <>
デフォルトの名無しさん<><>03/01/14 17:00<> age <>
デフォルトの名無しさん<><>03/01/14 20:33<> <a href="../test/read.cgi/tech/1042375466/10" target="_blank">&gt;&gt;10</a> <br> 何を読んだの？ <br> <a href="../test/read.cgi/tech/1042375466/1" target="_blank">&gt;&gt;1</a> のソース？ <>
デフォルトの名無しさん <><>03/01/14 20:48<> 俺も暇だからブートの部分だけ勉強してみよ <br>  <>
デフォルトの名無しさん<>sage<>03/01/15 03:01<> 前スレ落ちた？ <>
デフォルトの名無しさん<>sage<>03/01/15 09:51<> <a href="../test/read.cgi/tech/1042375466/14" target="_blank">&gt;&gt;14</a> <br> 落ちたみたい <br>  <br> もっとガンガン埋めとくべきだった、、、 <>
山崎渉<>（＾＾）sage<>03/01/15 17:46<> （＾＾）     <>
デフォルトの名無しさん<><>03/01/15 19:19<> http://pc.2ch.net/test/read.cgi/os/1031404041/904 <br>  <br> &gt;Mona が Unix user にちょっとだけ出てた <br>  <br> だそうですが、読んだ人いませんか？ <>
デフォルトの名無しさん<><>03/01/15 21:11<> <a href="../test/read.cgi/tech/1042375466/17" target="_blank">&gt;&gt;17</a> <br> bochsの記事で、bochsのデバッグ機能が『mona』のブート部分の開発に役立った <br> というものでした。 <>
17<>sage<>03/01/15 21:31<> <a href="../test/read.cgi/tech/1042375466/18" target="_blank">&gt;&gt;18</a> <br>  <br> ありがとうございますた。 <>
デフォルトの名無しさん<>sage<>03/01/15 22:10<> <a href="../test/read.cgi/tech/1042375466/18" target="_blank">&gt;&gt;18</a> <br> なんかそれだけみると。bochsの何のために有るか分からん機能が <br> monaに役に立った。って書いてあるように見えるなぁ。 <>
デフォルトの名無しさん<>sage<>03/01/15 22:27<> <a href="../test/read.cgi/tech/1042375466/18" target="_blank">&gt;&gt;18</a> <br> ひげぽん「また落っこちました～」 <br> まわり「だからbochsのログだせやぁ」 <br>  <br> の流れを思い出しました。ｗ <>
ひげぽん<>sage<>03/01/15 22:50<> <a href="../test/read.cgi/tech/1042375466/21" target="_blank">&gt;&gt;21</a> <br> &gt;の流れを思い出しました。ｗ <br> あの時も、今もたくさんの人のお世話になっているということですね（笑） <br>  <br> ところで今日は、TSSを使わないタスクスイッチの簡易実験に成功しました。 <br> eflags, csがいまいち更新されてなくて怪しいなど <br> 不確定な要素満載ですが、一歩前に進みました。 <br>  <br> アドバイスを下さったたくさんの方々、本当にありがとうございました。m(__)m <>
デフォルトの名無しさん<>sage<>03/01/15 23:26<> マーはニーしる！ <br> を思い出しました。 <>
デフォルトの名無しさん<>sage<>03/01/16 00:11<> &gt;22 <br> 「タスク切り替え」なんてものは、定義が適当だし、今の段階では <br> 実際的な「タスク切り替え」とは程遠いので、あんまり大したこと <br> ではない。 <>
ひげぽん<>sage<>03/01/16 00:14<> <a href="../test/read.cgi/tech/1042375466/24" target="_blank">&gt;&gt;24</a> <br> &gt;「タスク切り替え」なんてものは、定義が適当だし、今の段階では <br> &gt;実際的な「タスク切り替え」とは程遠いので、あんまり大したこと <br> &gt;ではない。 <br> 全くおっしゃるとおりです。 <br> ただ今回の実験を通していろいろ勉強できたので <br> 自分的には収穫は大きいです。 <>
デフォルトの名無しさん<>sage<>03/01/16 10:57<> 何か最近Monaの進歩状況がよくわかんないな～ <br> 知りたきゃCVSから取ってこいってのは敷居高くない？ <br> わざわざトップページ更新するほどじゃないのかもしれんが、 <br> SF.jpに日記機能あるんだし、開発日誌みたいなの公開しないの？ <br> https://sourceforge.jp/developer/diary.php?diary_user=2006 <br>  <br> CVSを取ってこないと分からない例 <br> 1. STLがどうなったのか <br> 2. VPC対応がどうなったのか <br> 3. タスク切り替えがどうなったのか <br>  <br> あと64bitの話が出てたがどう考えてるの？ <br> 新規開発者が加入されたようだけどHP更新されてなくて可哀想... <br>  <br> ま、辛口だったかもしれんが、応援してるんで頑張ってちょ <>
ひげぽん<>sage<>03/01/16 21:28<>  <br> &gt;何か最近Monaの進歩状況がよくわかんないな～ <br> &gt;知りたきゃCVSから取ってこいってのは敷居高くない？ <br>  <br> ご意見ありがとうございます。 <br> こういうところは、なかなか自分で気付かない所なので <br> ご指摘は大変ありがたいです。 <br>  <br> 以下ひとつずつ、回答いたします。 <br>  <br> &gt;わざわざトップページ更新するほどじゃないのかもしれんが、 <br> &gt;SF.jpに日記機能あるんだし、開発日誌みたいなの公開しないの？ <br> &gt;https://sourceforge.jp/developer/diary.php?diary_user=2006 <br>  <br> 開発のソースレベルの変更をお知りになりたいのであれば <br> http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/mona_v1.0/src/ChangeLog <br> よりChangeLogを見ていただくのが良いかと思います。 <br> CVSにコミットする場合は何らかのコメントを入れています。 <br>  <br> それ以外に必要であれば、どこかに近況を入れようかと思いますが <br> どこが良いでしょうか。皆さんのご意見をうかがいたいです。 <br>  <br> (1)sourceforge.jpの日記 <br> (2)MonaBBS <br> (3)Monaトップページ <br> (4)作ろうスレ(ここ) <br> (5)メーリングリスト作成(現在非公開の開発者用メーリングリストはあります) <br> (6)その他 <>
ひげぽん<>sage<>03/01/16 21:29<> 長くなってしまったので分けて。 <br>  <br> &gt;1. STLがどうなったのか <br>  <br> STLPortが使えるようになりました。 <br> カーネルの実装にはまだ用いていませんが、いずれ使う事になると思います。 <br> 特にコレクションなど。 <br>  <br> &gt;2. VPC対応がどうなったのか <br>  <br> 昨日にやっと、VPCでのブートとタスクスイッチが動作しました。 <br> ただイメージとして公開している物は古いバージョンなので <br> VPCでは動きません。 <br>  <br> イメージとして最新版を公開していないのは <br> 現在タスクスイッチ(TSSを使用しないバージョン)の動作がまだあやしいためです。 <br> 安定後公開したいと思います。 <br>  <br> もしどうしても最新版のイメージがほしい場合は、Make環境を整えていただくか <br> ひげぽんに言っていただければ、何とかいたします。 <br>  <br> &gt;3. タスク切り替えがどうなったのか <br>  <br> ここ最近、ずっと実験中かつ、実験が失敗していたので特に進捗はありませんでした。 <br> 昨日やっと、少しめどがたったのでいろいろな実機で実験しようと思っています。 <>
ひげぽん<>sage<>03/01/16 21:29<> &gt;あと64bitの話が出てたがどう考えてるの？ <br>  <br> IA32アーキテクチャの理解もままならないのでしばらくは <br> 64bit化を見据えた開発はしないと思います。 <br> ただ、どなたか詳しい方がいらっしゃって <br> アドバイスいただけるのであれば、積極的に今からある程度 <br> 準備するのはありだと思っています。 <br>  <br> &gt;新規開発者が加入されたようだけどHP更新されてなくて可哀想... <br>  <br> すいません、なるべく早く追加いたします。 <br> yuryuさんこれを見ていたら、開発者メーリングリスト宛に <br> メールください。 <br>  <br> &gt;ま、辛口だったかもしれんが、応援してるんで頑張ってちょ <br>  <br> 貴重なご意見ありがとうございました。 <br> 他にも同じような事を思われていた方もいらっしゃると思うので <br> できるだけ改善していきたいと思っています。 <>
デフォルトの名無しさん<>sage<>03/01/16 22:31<> &gt; ここ最近、ずっと実験中かつ、実験が失敗していたので特に進捗はありませんでした。  <br> &gt; 昨日やっと、少しめどがたったのでいろいろな実機で実験しようと思っています。  <br> こういうようなことを、自分の言葉で書ける日記は特別な意味があると思う。 <br> →「あれやった、でも駄目だった、と思ったら勘違いだった」みたいな <br> 他人にとっても泥臭さを通じてmonaを身近に感じる人もいるだろうし、 <br> 後で自分のやってきたことを見返すときにもきっと役立つ。 <>
デフォルトの名無しさん<>sage<>03/01/16 22:36<> &gt;1. STLがどうなったのか <br> こういう書き方だと、 <br> 2chブラウザとかで <a href="../test/read.cgi/tech/1042375466/1" target="_blank">&gt;&gt;1</a> と混同される <br>  <br> これに限らないがこの手の混同を避けるため <br> 引用符と引用文の間はスペースを空ける慣習があるんだよ <>
デフォルトの名無しさん<>sage<>03/01/16 22:49<> 何でひげぽんさんはこっちではトリップ付けないの？ <br> MonaBBSではこんなにはじけちゃってるのに（藁 <br> &gt; (´∇｀)ﾋｹﾞﾎﾟｿ ◆Ngzcp/NZpA <br>  <br> トリップは自衛の手段なんだから。 <br> 偽者がめちゃくちゃ書く可能性を自分で作ることになるよ。 <br> こっちでもはじけちゃいなよ（藁 <>
デフォルトの名無しさん<>sage<>03/01/16 23:27<> <a href="../test/read.cgi/tech/1042375466/32" target="_blank">&gt;&gt;32</a> <br> なんかあってからそのトリップつけりゃいんじゃない？ <br>  <>
デフォルトの名無しさん<>sage<>03/01/16 23:38<> おまい、しんでからシートベルトつけても遅いんだぞ <>
デフォルトの名無しさん<>sage<>03/01/16 23:54<> つーか、書いてる内容でだいたいわかるだろ。 <br> 荒らすような偽者には、このスレは敷居高いと思う。 <>
33<>sage<>03/01/17 00:21<> <a href="../test/read.cgi/tech/1042375466/34" target="_blank">&gt;&gt;34</a> <br> ぬ、MonaBBSで <a href="../test/read.cgi/tech/1042375466/32" target="_blank">&gt;&gt;32</a> のトリップ使ってるのかと思ったんだが、 <br> どうやらさっき確認した限りではそういう例が見つからなかった。 <br> 勘違いですた。 <br>  <br> というか、トリップなんて後で適当に決めちゃってもオフイシャルページで宣言しちゃえば問題ないじゃん。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/35" target="_blank">&gt;&gt;35</a> <br> まぁね。分かるよね。騙すにはそれなりに技術レベルも必要だし。 <>
デフォルトの名無しさん<>sage<>03/01/17 00:37<> <a href="../test/read.cgi/tech/1042375466/36" target="_blank">&gt;&gt;36</a> <br> 一体全体、どこ探したの？？？ <br> http://pc3monaos.hp.infoseek.co.jp/cgi-bin/2ch/test/read.cgi/entrance/1042291353/l50 <br>  <br> あと誰も書き込まないMonaBBSで付けてるのに <br> 荒らしの巣窟の2chで付けないことをなぜ擁護するか理解できん。 <>
デフォルトの名無しさん<>sage<>03/01/17 00:42<> &gt; 荒らすような偽者には、このスレは敷居高いと思う。 <br> ひげぽんさんが登場するのはこのスレだけではないと思われ <br> それこそOSASKとかNWSOSとかの絡みでしょっちゅう引き合いに出されてるし <>
デフォルトの名無しさん<>sage<>03/01/17 01:19<> ていうか前はトリップ付けてたけど… <>
33<>sage<>03/01/17 02:10<> ほんとだpart3みたらついてる、、、 <br>  <>
デフォルトの名無しさん<>sage<>03/01/17 02:24<> にしても、NWSOSの進行が速いな。さっき最新版ダウソしたら <br> いつのまにか、いろんなGUIアプリが動いてた。ってかメモ帳程度の <br> ものが当たり前に動いてるし、 <br>  <br> なんなんだ、いったい <>
デフォルトの名無しさん<>sage<>03/01/17 05:00<> MONAもNWSOSも自作組み立て機で動いた。わーい <br>  <br> ＃会社のPCなんで、linux入れてProxyキャッシュサーバとして稼動させる <br> のが本来の予定だったんだけど、NWSOS動かしたら周りの人が、なにそれなにそれ <br> みたいな感じで群がってきた。MONAは、今のところBIOSっぽい画面なんで <br> BIOSと思われてるらしく、あまり注目されてなかった。 <br> ってことで、MONA頑張れ。 <>
デフォルトの名無しさん<>sage<>03/01/17 09:12<> <a href="../test/read.cgi/tech/1042375466/41-42" target="_blank">&gt;&gt;41-42</a> <br>  <br> 桜？ <br> 頑張れ。 <>
デフォルトの名無しさん<>sage<>03/01/17 10:46<> <a href="../test/read.cgi/tech/1042375466/43" target="_blank">&gt;&gt;43</a> は友達がいないタイプだな <>
ひげぽん<><>03/01/17 17:07<> <a href="../test/read.cgi/tech/1042375466/31" target="_blank">&gt;&gt;31</a> <br> &gt; 引用符と引用文の間はスペースを空ける慣習があるんだよ <br> 了解しました。 <br>  <br> &gt; 何でひげぽんさんはこっちではトリップ付けないの？ <br> &gt; MonaBBSではこんなにはじけちゃってるのに（藁 <br>  <br> <a href="../test/read.cgi/tech/1042375466/32-40" target="_blank">&gt;&gt;32-40</a> <br> 面倒だったので付けていませんでした。＞トリップ <br> なのでつけてみました（笑） <br> トリップを付けるかどうかは、結構気分かもです。ごめんなさい。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/42" target="_blank">&gt;&gt;42</a> <br> &gt; みたいな感じで群がってきた。MONAは、今のところBIOSっぽい画面なんで <br> &gt; BIOSと思われてるらしく、あまり注目されてなかった。 <br> &gt; ってことで、MONA頑張れ。 <br>  <br> NWSOSと比べられたら、大負けですね。 <br> というか、どのOSと比べても負けてる。 <br> もっといえばBIOSのほうがすごい・・・ <br> でもがんばります、ありがとうございます。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><><>03/01/17 17:39<> トリップ失敗。。。 <br>  <br> さてMonaの進行状況は技術的なことであれば、なるべくここに書いていこうと <br> 決めました。 <br>  <br> 昨日はタスクスイッチ実験成功コードを見直していたところ <br> どうも動いていたのは奇跡かもという結論に達しました。 <br>  <br> iretではなくretで切り替わっていた模様。 <br> なのでEFLAGS,CSチェンジが起こっていなかった。 <br>  <br> またスタックに積まれていると予期していたものと <br> 実際でいろいろ勘違いがありました。 <br>  <br> ある時点でスタックに積まれている内容を <br> そこで処理がとまっていいので表示したい場合は <br> 汎用レジスタにpopして表示でいいんですよね？自信なし <br>  <br> 自分でスタックを初期化して作ったプロセスのほうは <br> popaように0を積んで、eflags,cs,eipとやってiret <br> 切り替えられました。(process2) <>
ひげぽん </b>◆Ngzcp/NZpA <b><><>03/01/17 17:42<> ただ起点となる(process1)の切り替えがうまくいかない <br> timerHandler <br> &nbsp;&nbsp;&nbsp;&nbsp;schedule <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switchProcess <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ここで切り替え <br>  <br> インテルのマニュアルを読むと <br> エラーでない割り込みであれば <br> /*&nbsp;EFLAGS&nbsp;*/ <br> /*&nbsp;CS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ <br> /*&nbsp;EIP&nbsp;&nbsp;&nbsp;&nbsp;*/ <br> と積まれているはずなのに、うまくいかないっす。 <br> それぞれtimerHandler,scheduleのアドレスが <br> pushされているかと二つpopしてやってみたがうまくいかず・・・ <>
ひげぽん </b>◆Ngzcp/NZpA <b><><>03/01/17 17:44<>  <br> スタックの内容が表示できるよう <br> #define _syspop(count)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;\ <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\ <br> &nbsp;&nbsp; for (int i = 0; i &lt; count; i++) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\ <br> &nbsp;&nbsp;&nbsp;&nbsp; dword __eax;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \ <br> &nbsp;&nbsp;&nbsp;&nbsp; asm volatile("xor %%eax, %%eax\n"&nbsp;&nbsp;&nbsp;\ <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"pop %%eax&nbsp;&nbsp;&nbsp; \n"&nbsp;&nbsp;&nbsp;\ <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"mov %%eax, %0&nbsp; \n"&nbsp;&nbsp;&nbsp;\ <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : "=m" (__eax)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \ <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : /* no input */&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \ <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \ <br> &nbsp;&nbsp;&nbsp;&nbsp;_sys_printf("_sysPop(): %x\n", __eax);&nbsp;\ <br> &nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\ <br> } <br>  <br> 作ってみたけどいまいちきちんと動いてなさそうな気がする。 <br> うーんうまくいかず。 <br>  <br> ところでCSて16bitだけど <br> 割り込みでスタックに積まれる時は32bit? <br> かなあ。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/17 18:19<> 表示が乱れてしまいました。 <br> すいません。 <br>  <br> &gt; ところでCSて16bitだけど <br> &gt; 割り込みでスタックに積まれる時は32bit? <br> &gt; かなあ。 <br>  <br> 32bitのようです。 <br> サンクスmitkoさん。 <br>  <>
デフォルトの名無しさん<>sage<>03/01/17 18:22<> 非プログラマブル部分があるからね＞CS３２BIT <>
デフォルトの名無しさん<>sage<>03/01/17 18:45<> もうおそいけど、次スレ作る際に現行スレのコピーとっておいて、 <br> どこかのWEBページで見れるように保存しておいてほしかったなぁ。 <br> 前スレがDAT落ちしまくって後から来たものにはなにがどうなってるのか <br> 分からない罠。 <br>  <br> 前スレの保存公開は禁じられてるのなら仕方ないけど。 <>
FreeDOS教徒<>osage<>03/01/17 19:19<> <a href="../test/read.cgi/tech/1042375466/51" target="_blank">&gt;&gt;51</a>さんがこう言ってるんだし、 <br> とりあえず過去ログどっかに置いていいんじゃない？＞ひげぽん <br>  <br> とか言うのもナンなのでHTML化されるまで出しておきます。 <br> ttp://guriponn.tripod.co.jp/archives/os-part4.htm <>
デフォルトの名無しさん<>sage<>03/01/17 23:34<> &gt;freedos教徒さん <br>  <br> ご苦労様です。 <br> ありがたく拝見されていただきます。 <>
デフォルトの名無しさん<>sage<>03/01/17 23:45<> ↑拝見させて、だね <>
デフォルトの名無しさん<>sage<>03/01/18 02:54<> <a href="../test/read.cgi/tech/1042375466/48" target="_blank">&gt;&gt;48</a> <br> popしちゃうと戻れなくなるから、popせずにスタックを除き見るだけが吉だとおもわれ。 <br> 例えば、 <br> handler: <br> pusha; 8個のレジスタ分つまり32bytesプッシュする <br> moveax, [esp+32]; eax &lt;= エラーコード <br> moveax, [esp+36]; eax &lt;= 割り込み時eip <br> movax, word [esp+40]; ax &lt;= 割り込み時cs <br> moveax, [esp+44]; eax &lt;= 割り込み時eflags <br> popa <br> iret <br> Cの関数にする場合は <br> void handler(unsigned long eip, unsigned short cs, unsigned long eflags) <br> { <br>   interror_code = (&eip)[-1]; <br>   /* 割り込みの処理 */ <br>   asm("leave"); <br>   asm("addl $4, %esp"); /* エラーコードをpopする替わり */ <br>   asm("iretl"); <br> } <br> とかするとよろし。 <br>  <>
デフォルトの名無しさん<>sage<>03/01/18 02:55<> しまった。タブ入れ欄内の忘れてた。ｽﾏｿ <br>  <>
デフォルトの名無しさん<>sage<>03/01/18 02:56<> 漢字むちゃくちゃだ。ﾓﾁﾂｹ漏れ <br>  <>
ひげぽん<><>03/01/18 03:05<> まさに今スタックのぞきみを思案中です <br> インラインとprintfでやってますがうまくいかないです <br>  <>
デフォルトの名無しさん<>sage<>03/01/18 03:42<> <a href="../test/read.cgi/tech/1042375466/58" target="_blank">&gt;&gt;58</a> <br> 上の例を説明すると、 <br>  <br> - 32bitモードの場合push対象が16bitでも32bit分のスペースをとる。 <br> - esp は最後にpushした値を指す。 <br> - Ｃ言語の関数は一般に以下のようにコンパイルされる： <br> 　func: <br> 　　　　push ebp <br> 　　　　mov ebp,esp <br> 　　　　; 関数の内容 <br> 　　　　leave <br> 　　　　ret <br> - Ｃ言語の関数の引数としては call 前にpushした値が逆順に与えられる。 <br> 　例： <br>  <br> 　　　　push dword 0x1234 <br> 　　　　call func <br>  <br> 　void func(unsigned long x) <br>   { <br> 　　/*  x=0x1234 */ <br> 　} <br> - C言語の関数は leave, iret ではなく leave, ret で終わるので注意。（前スレあたりでがいしゅつ） <br> - 例外の場合はエラーコードがプッシュされる場合があるので注意。 <br>  <br> なんか要約したつもりが余計長くなってしまった。 <>
デフォルトの名無しさん<>sage<>03/01/18 06:34<> <a href="../test/read.cgi/tech/1042375466/48" target="_blank">&gt;&gt;48</a> <br> やりたい事が良く分からないので的外れかもしれないけど <br> 無理にインラインアセンブラにしないで <br> ↓みたいな関数にしちゃだめなの？ <br>  <br> ; eax,ecx,edxが破壊されretで返るルールの場合 <br> __syspop proc near <br> &nbsp; push esi <br> &nbsp; push edi <br> &nbsp; push ebx <br> &nbsp; mov edi, dword ptr[esp+16] <br> &nbsp; xor ebx, ebx <br> &nbsp; test edi, edi <br> &nbsp; jz _syspop_02 <br> syspop_01: <br> &nbsp; push dword ptr[esp+ebx*4+20] <br> &nbsp; push offset _syspop_buf ;printfの第1引数 <br> &nbsp; call _printf <br> &nbsp; add esp, 8 <br> &nbsp; inc ebx <br> &nbsp; inc edi <br> &nbsp; jnz _syspop_01 <br> syspop_02: <br> &nbsp; pop ebx <br> &nbsp; pop edi <br> &nbsp; pop esi <br> &nbsp; ret <br> __syspop endp <>
デフォルトの名無しさん<>sage<>03/01/18 09:51<> (昔の雰囲気が戻った) <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/18 12:52<> #define&nbsp;_sysdumpStack()&nbsp;{ <br>  <br> 　dword&nbsp;stack0,&nbsp;stack1,&nbsp;stack2; <br>  <br> 　asm&nbsp;volatile( <br> 　　　　&nbsp;"pusha&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n" <br> 　　　　&nbsp;"mov&nbsp;&nbsp;32(%%esp),&nbsp;%%eax&nbsp;\n" <br> 　　　　&nbsp;"mov&nbsp;&nbsp;%%eax,&nbsp;%0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n" <br> 　　　　&nbsp;"mov&nbsp;&nbsp;36(%%esp),&nbsp;%%eax&nbsp;\n" <br> 　　　　&nbsp;"mov&nbsp;&nbsp;%%eax,&nbsp;%1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n" <br> 　　　　&nbsp;"mov&nbsp;&nbsp;40(%%esp),&nbsp;%%eax&nbsp;\n" <br> 　　　　&nbsp;"mov&nbsp;&nbsp;%%eax,&nbsp;%2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n" <br> 　　　　&nbsp;"popa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n" <br> 　　　　&nbsp;:&nbsp;"=m"(stack0) <br> 　　　　&nbsp;,&nbsp;"=m"(stack1) <br> 　　　　&nbsp;,&nbsp;"=m"(stack2) <br> 　　　　); <br>  <br> 　_sys_printf("_sysdumpStack():&nbsp;%x&nbsp;%x&nbsp;%x\n" <br> 　　　&nbsp;&nbsp;&nbsp;,&nbsp;stack0,&nbsp;stack1,&nbsp;stack2); <br> } <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/18 12:57<> 皆さんのご教授をもとに作って見ました。 <br> とりあえずこれを使って、昨晩はtimerHandler突入後のスタックを <br> 調べてみましたが <br> CS=0x08らしきものすらスタックに積まれている様子がなくて <br> 戸惑っています。 <br>  <br> 考えられる可能性は <br> ・_sysdumpStack()がバグっている <br> ・_sysdumpStack()の前にすでにスタックが破壊されている <br> ・ひげぽんの大きな勘違い <br> ・その他。 <br>  <br> とりあえずいきづまったので寝てから、もう一度冷静に考えてみます。 <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/18 13:04<> <a href="../test/read.cgi/tech/1042375466/52" target="_blank">&gt;&gt;52</a> <br> FreeDOS教徒さん <br> フォローありがとうございます。 <br> yossyさんと検討してみます。＞過去ログ <>
超先生＠OS板  </b>◆leaf/RYZgY <b><>sage<>03/01/18 15:26<> ＜　｀ー´＞y-~~ スタック見るならこれだけでええやん <br>  <br> dword* stack; <br> mov stack,ebp <br>  <br> printf("cs=%x,eip=%x,flag=%0x",*(stack+0),*(stack+1),*(stack+2)); <br>  <br> // (stackframe) &lt;- esp <br> // [cs　　] &lt;- ebp <br> // [eip　　] <br> // [eflags] <>
デフォルトの名無しさん<>sage<>03/01/18 18:17<> ちなみに、関数のプロローグは、標準的には、 <br> push ebp <br> mov ebp,esp <br> sub esp,(AUTO変数のサイズ) <br>  <br> で、しかも、csとeipの順序が反対なので、 <br>  <br> // &lt;- esp <br> // [AUTO変数領域 <br> // ... <br> // AUTO変数領域] <br> // [ebp    ] &lt;- ebp <br> // [eip　 ] <br> // [cs　　] <br> // [eflags] <br> // [外側esp](もしあれば) <br> // [外側ss](もしあれば) <br>  <br> と夢の中でお告げがありましたのでご報告いたし上げます(南無)。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/01/18 18:17<> だって。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/19 02:20<> <a href="../test/read.cgi/tech/1042375466/65" target="_blank">&gt;&gt;65</a> <br> <a href="../test/read.cgi/tech/1042375466/66" target="_blank">&gt;&gt;66</a>ありがとうございます。 <br> #define _sysdumpStack2(str) {　　　　　　 \ <br> 　　　　　　　　　　　　　 \ <br> 　dword* stack;　　　　　　　　　 \ <br> 　asm volatile("mov %%ebp, %0 \n" : "=m"(stack));  \ <br> 　_sys_printf("_sysdumpStack2(%s):%x %x %x\n" 　 \ <br> 　　　  , str, *(stack + 0), *(stack + 1) 　 \ <br> 　　　  , *(stack + 2));　　　　　　 \ <br> } <br>  <br> #define _sysdumpStack3(str) {　　　　　　 \ <br> 　　　　　　　　　　　　　 \ <br> 　dword* stack;　　　　　　　　　 \ <br> 　asm volatile("mov %%esp, %0 \n" : "=m"(stack));  \ <br> 　_sys_printf("_sysdumpStack2(%s):%x %x %x\n" 　 \ <br> 　　　  , str, *(stack + 0), *(stack + 1) 　 \ <br> 　　　  , *(stack + 2));　　　　　　 \ <br> } <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/19 02:36<> スタック覗き見作戦ということで <br> やってみました。 <br>  <br> timerHandler()の頭で呼んだ場合(それぞれ単独の呼び出し) <br> _sysdumpStack2(timer):0x002FFF6C&nbsp;0x00001ED0&nbsp;0x00000008 <br>  <br> _sysdumpStack3(timer):0x00001DAD&nbsp;0x00001DCA&nbsp;0x00001DAD <br>  <br>  <br> ProcessManger::schdule() <br> _sysdumpStack2(schedule):0x002FFF58&nbsp;0x00001DEF&nbsp;0x000098E0 <br>  <br> _sysdumpStack3(schedule):0x000053DF&nbsp;0x000053FC&nbsp;0x000053DF <br>  <br> timerHandler()ないでは0x00000008があるので <br> もしかしたら惜しいかも。 <br>  <br> でも今日はよくわからず、力尽きました。 <br> 最近ずっと動くものが作れていないので、CVS&nbsp;コミットしてません。 <br> ちょっと不安。 <br>  <br> Makeは出来るけど途中で動きが止まってしまうようなやつを <br> コミットしても良いかと迷うのですがどうなのでしょうか。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/19 02:39<> ソースチェックアウトしてMakeしたけど <br> スタックダンプしてとまるぞと、怒られそうで・・・ <br>  <br> 定常的にチェックして、 <br> ソースからMakeしている人っているのだろうか。。。 <>
デフォルトの名無しさん<>sage<>03/01/19 03:30<> C++なんだから、マクロなんか使わないで、インライン関数にしては？&gt;&gt;ﾋｹﾞﾎﾟｿﾀｿ <>
デフォルトの名無しさん<>sage<>03/01/19 03:32<> <a href="../test/read.cgi/tech/1042375466/69" target="_blank">&gt;&gt;69</a> <br> そのためのブランチでしょ。 <br> 新しい実験を開始するたびにブランチすればいい。 <>
デフォルトの名無しさん<>sage<>03/01/19 03:40<> <a href="../test/read.cgi/tech/1042375466/71" target="_blank">&gt;&gt;71</a> <br> スタック扱うのに？ <>
デフォルトの名無しさん<>sage<>03/01/19 05:39<> <a href="../test/read.cgi/tech/1042375466/73" target="_blank">&gt;&gt;73</a> <br> インラインですが何か？ <>
デフォルトの名無しさん<>sage<>03/01/19 06:23<> <a href="../test/read.cgi/tech/1042375466/74" target="_blank">&gt;&gt;74</a> <br> 保証ない <>
デフォルトの名無しさん<>sage<>03/01/19 06:35<> <a href="../test/read.cgi/tech/1042375466/75" target="_blank">&gt;&gt;75</a> <br> 逆汗してみ <>
デフォルトの名無しさん<>sage<>03/01/19 09:12<> <a href="../test/read.cgi/tech/1042375466/76" target="_blank">&gt;&gt;76</a> <br> コンパイルオプションを変えただけで動かなくなるかもしれない方法を薦めないように <br>  <>
デフォルトの名無しさん<>sage<>03/01/19 11:05<> <a href="../test/read.cgi/tech/1042375466/78" target="_blank">&gt;&gt;78</a> <br> だから逆汗してみっていってるでしょ <br> インラインアセンブラで書いた部分が最適化の影響を受けるとは初耳 <>
デフォルトの名無しさん<>sage<>03/01/19 11:41<> <a href="../test/read.cgi/tech/1042375466/78" target="_blank">&gt;&gt;78</a> <br> インライン関数がインライン展開される保証は無いのですが <br> ＶｉｓｕａｌC++なら__forceinlineなんてものがありますが <br>  <>
デフォルトの名無しさん<>sage<>03/01/19 12:44<> <a href="../test/read.cgi/tech/1042375466/71" target="_blank">&gt;&gt;71</a> <br> 今回みたいにちょこっと実験してみるにはマクロが便利でつ <br> コンパイルオプションとかコンパイラとか、なるべく関係ないように書くには <br> アセンブリ言語が一番だけどﾅｰ <br>  <>
デフォルトの名無しさん<>sage<>03/01/19 13:00<> で、実際に逆汗してみた香具師いるわけ？ <br> -O付けなければ一切インライン展開されない。 <br> -Oが付いていればレベルに関係なく100%インライン展開される。 <br> よって<a href="../test/read.cgi/tech/1042375466/77" target="_blank">&gt;&gt;77</a>は正しいが、-Oさえあれば保証はある。 <br>  <br> ま、普通のコードでさえ-O3以上だとまれにバグるので、 <br> 環境に一切左右されないのは<a href="../test/read.cgi/tech/1042375466/80" target="_blank">&gt;&gt;80</a>の言うようにオール汗だな。 <br> 今のmonaの開発方針とは正反対になるけど。 <br> だから最終的には気持ちの差。 <br>  <br> #############　終　了　############# <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/19 14:47<> <a href="../test/read.cgi/tech/1042375466/71" target="_blank">&gt;&gt;71</a> <br> スタックを扱うので、ちょっとインライン関数は怖かったです。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/72" target="_blank">&gt;&gt;72</a> <br> ありがとうございます。 <br> CVSコミットしちゃいました。 <br>  <br> 関係ありそうな箇所について-Sオプションでアセンブラコードを出してみました。 <br> http://mona.sourceforge.jp/higepon/ <br>  <br> timerHandler() <br> 　ProcessManager::schedule() <br> 　　ProcessManager::swtichProcess2() <>
超先生＠OS板  </b>◆leaf/RYZgY <b><>sage<>03/01/19 18:10<> ＜　｀ー´＞y-~~  やっぱりinline展開されてない様子。 &gt;switchProcess2 <br> initProcessでtimerHandlerへの戻り先他を積んでおかないとダメか。 <br>  <br> そもそもコンテキストスイッチをesp切り替えでやるのはあまりお勧めできないが・・・。 <>
デフォルトの名無しさん<>sage<>03/01/19 18:30<> <a href="../test/read.cgi/tech/1042375466/83" target="_blank">&gt;&gt;83</a> <br> CVSでCFLAGSを見る限り、-Oが付いてないですね。 <br> これではインライン展開されないです。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/82" target="_blank">&gt;&gt;82</a> <br> インライン関数はなるべくヘッダに書いた方が良いですよ。 <br> 他のクラスから使うのであれば絶対に。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/19 18:33<> <a href="../test/read.cgi/tech/1042375466/83" target="_blank">&gt;&gt;83</a>  <br> 超先生さん <br> &gt;initProcessでtimerHandlerへの戻り先他を積んでおかないとダメか。 <br> なるほど <br> 二つ手があると思っています。 <br> (1)switchProcess2()は、インライン展開されていないので <br> schedule()からtimerHandler()に戻るために <br> initProcessでスタックにtimerHandlerへの戻り値を <br> 格納しておく。 <br> そしてtimerHandler()でiret <br> (2)iret(つまりタスクスイッチ）をswitchProcess2()で行ってしまう。 <br> この場合はinitProcess()で初期化する場合には <br> timerHandler()への戻り値を格納しておく必要はなく <br> 適当な値を積んで置く。 <br> そしてタスクスイッチの前にスタックの値を <br> ひとつ捨てる。 <br> （捨てられるのはtiemrHandelerのアドレスか初期化時に設定された適当な値） <br>  <br> うーんどちらがよいのでしょうか。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/19 18:35<> &gt;そもそもコンテキストスイッチをesp切り替えでやるのはあまりお勧めできないが・・・。 <br>  <br> 現状は、この方法しかわからないというのが真実です。 <br> ほかに、もっとよい方法があるのでしたら <br> 簡単でよいので教えていただけないでしょうか。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/19 18:40<> <a href="../test/read.cgi/tech/1042375466/84" target="_blank">&gt;&gt;84</a>さん <br> アドバイスありがとうございます。 <br>  <br> &gt; CVSでCFLAGSを見る限り、-Oが付いてないですね。 <br> &gt; これではインライン展開されないです。 <br>  <br> 了解しました。 <br> この辺の-Oオプションに詳しいサイト等ありましたら <br> 教えていただけないでしょうか。 <br> できれば、必ずインライン展開される/されない等 <br> の情報があればありがたいです。 <br>  <br> &gt; インライン関数はなるべくヘッダに書いた方が良いですよ。 <br> &gt; 他のクラスから使うのであれば絶対に。 <br>  <br> はい一応認識しています。 <br> 一応私の方針としてクラスメンバ関数のうち <br> インライン化するのはprivateなものだけにしようと <br> 思っています。 <br> まあなんとなくですが・・・ <>
デフォルトの名無しさん<>sage<>03/01/19 19:06<> <a href="../test/read.cgi/tech/1042375466/81" target="_blank">&gt;&gt;81</a> <br> &gt;  -Oが付いていればレベルに関係なく100%インライン展開される。 <br>  <br> この情報のソースある ? <br>  <br> VC では、forceinline 指定にもかかわらず、インラインにならない時があるんだけど。 <>
デフォルトの名無しさん<>sage<>03/01/19 19:18<> <a href="../test/read.cgi/tech/1042375466/88" target="_blank">&gt;&gt;88</a> <br> monaのソースを逆汗して確認。 <>
デフォルトの名無しさん<>sage<>03/01/19 20:11<> <a href="../test/read.cgi/tech/1042375466/89" target="_blank">&gt;&gt;89</a> <br> それってたまたまそうなってたってことじゃないのか ? <br>  <br> もしそうなら、「100%インライン展開される」とか書くなよ。 <>
デフォルトの名無しさん<>sage<>03/01/19 20:49<> <a href="../test/read.cgi/tech/1042375466/90" target="_blank">&gt;&gt;90</a> <br> とりあえず、確認もせずにえらそうなことを言うのはやめてくれ。 <br> インラインにならない経験があるんだったら、 <br> それと同じケースがmonaの開発に使っている環境で再現することを示せば <br> 背理法で何も議論する必要ないんだから。 <>
デフォルトの名無しさん<>sage<>03/01/19 20:58<> <a href="../test/read.cgi/tech/1042375466/91" target="_blank">&gt;&gt;91</a> <br> 要するに、100% インラインになることは、保証されてないわけね。 <br>  <br> 議論以前の問題だよ。 <>
デフォルトの名無しさん<>sage<>03/01/19 21:00<> と、とにかく、、コンパイルOPTIONによって動くとか <br> 動かないとかいうのはシステム的になんか嫌だな・・・。 <br> OS作る前にもっとコンパイラとかオブジェクトコードの勉強しないと。。。 <>
デフォルトの名無しさん<>sage<>03/01/19 21:25<> <a href="../test/read.cgi/tech/1042375466/92" target="_blank">&gt;&gt;92</a> <br> 何一人で熱くなってんの？ <br> とりあえず、Monaをダウンロードして、コンパイルしないと始まらないよ。 <br> 手を動かしましょうよ。そう思って逆汗逆汗って言ったのに。 <br>  <br> Inline Limitを超えなければInlineになることは保証されてる。 <br> それくらい自分で見つけると思ったんだけどなあ。 <>
デフォルトの名無しさん<>まだ、やってみて OK だったら、満足する香具師っているんだね。<>03/01/19 21:59<> <a href="../test/read.cgi/tech/1042375466/94" target="_blank">&gt;&gt;94</a> <br> わかった、わかった。 <br> 貴方の環境では、100% インラインになるわけね。 <br>  <br> これでいい ? <br>  <br> 俺の環境で、100% 保証されない事がわかればどうでもいいです。 <>
デフォルトの名無しさん<>sage<>03/01/19 22:05<> <a href="../test/read.cgi/tech/1042375466/94" target="_blank">&gt;&gt;94</a> <br> 殺伐とした雰囲気には余りしたくないんだが、、、一つだけ言わせてもらう。 <br> <a href="../test/read.cgi/tech/1042375466/90" target="_blank">&gt;&gt;90</a> が言うように「たまたま」そうかもってのは考えた方がいいと思う。 <br> 注意事項とか、前提条件、仮定とかはなるべく少ない方がいいからな。 <br> そういうのが多いと、人には理解してもらいづらいし、自分で書いたソースだって <br> 一月もたてば結構忘れてしまうから、用心するには越したことがない。 <br>  <br>  <>
デフォルトの名無しさん<>sage<>03/01/19 22:07<> <a href="../test/read.cgi/tech/1042375466/95" target="_blank">&gt;&gt;95</a> <br> はい、結構です。で、本題。 <br> 興味の方向から考えるに、貴殿は組み込み用のOSを手がけておられるとお見受けしますが、 <br> タスクスイッチはどういう風に実装しておられましたか？ <>
デフォルトの名無しさん<>sage<>03/01/19 22:10<> けんか（・Ａ・）ｲｸﾅｲ! <>
デフォルトの名無しさん<>sage<>03/01/19 22:19<> <a href="../test/read.cgi/tech/1042375466/96" target="_blank">&gt;&gt;96</a> <br> と言うか、inline にする/しないなんて、コンパイラのバージョンで変わったりしそうでしょ ? <br> それに依存するのは、あまり良くないと思ってる。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/97" target="_blank">&gt;&gt;97</a> <br> &gt; 興味の方向から考えるに、貴殿は組み込み用のOSを手がけておられるとお見受けしますが、 <br> &gt; タスクスイッチはどういう風に実装しておられましたか？ <br>  <br> 普通に TCB (Task Control Block) にレジスタセーブして、SP を再設定するだけ。 <br> 当時は、メモリ管理などはなかった。 <br> また使ってた、68020 は、SP がユーザー/システム/割り込みで独立していたから、結構綺麗に書けた。 <>
デフォルトの名無しさん<>sage<>03/01/19 22:19<> 一人インライン信者がいるだけ <>
デフォルトの名無しさん<>sage<>03/01/19 22:22<> インラインスケート信者？ <>
デフォルトの名無しさん<>sage<>03/01/19 22:35<> <a href="../test/read.cgi/tech/1042375466/99" target="_blank">&gt;&gt;99</a> <br> 失礼しました。やはりそうでしたか。 <br> gccは2.95の頃から-finline-limit-Nで決めていたので、 <br> そんなに不安定なものだという感覚じゃなかったんです。 <br> inline信者というより、gcc信者の厨房ですみません。 <br>  <br> 貴殿の書き込みを拝見していると、 <br> コンパイラの面で色々と苦労されておられることが伝わってきて、 <br> 特にコールとスタックとかCしか使わない人は気にしないようなところに <br> 非常に気を遣っておられたので、ひょっとしたらと思っていました。 <br>  <br> 喧嘩みたいになって皆様にはご迷惑をお掛けしましたので自分は逝きます。 <>
デフォルトの名無しさん<>sage<>03/01/19 22:57<> <a href="../test/read.cgi/tech/1042375466/98" target="_blank">&gt;&gt;98</a> <br> すまん。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/102" target="_blank">&gt;&gt;102</a> <br> &gt; gccは2.95の頃から-finline-limit-Nで決めていたので、 <br> &gt; そんなに不安定なものだという感覚じゃなかったんです。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/96" target="_blank">&gt;&gt;96</a> も指摘してるし、<a href="../test/read.cgi/tech/1042375466/99" target="_blank">&gt;&gt;99</a> にも書いたけど。それをもって 100% なんてあまり書かない方が良いと思うよ。 <br>  <br> GCC のマニュアルにも... <br>  <br> Note: <br> 　pseudo instruction represents, in this particular context, an abstract measurement of function's size. <br> 　In no way, it represents a count of assembly instructions and as such its exact meaning might change from one release to an another.  <br>  <br> と書かれてるぐらいだから。 <br>  <br> &gt;  特にコールとスタックとかCしか使わない人は気にしないようなところに <br>  <br> ちょっと勘違いしてるかと...。 <br> 俺は、<a href="../test/read.cgi/tech/1042375466/88" target="_blank">&gt;&gt;88</a>=<a href="../test/read.cgi/tech/1042375466/90" target="_blank">&gt;&gt;90</a>=<a href="../test/read.cgi/tech/1042375466/92" target="_blank">&gt;&gt;92</a>=<a href="../test/read.cgi/tech/1042375466/95" target="_blank">&gt;&gt;95</a>=<a href="../test/read.cgi/tech/1042375466/99" target="_blank">&gt;&gt;99</a> だからスタックどうのこうのは書いてないよ。 <br>  <br> ただ、このスレ見てる奴は、スタックがどうのこうのぐらいはだいたいわかってると思う。 <br> (でないと、ちんぷんかんぷんだろうし...。) <>
デフォルトの名無しさん<>sage<>03/01/20 02:02<> えと、一応、CPUメーカに勤めてて、gccにも明るいと自負している自称gccハカセですが、 <br> -O2オプション以上をつけてれば、gccはinline展開を必ず試みます。 <br> が、例外があって、例えば inline 関数を展開した結果、己のinline関数を <br> 呼び出すような場合、無限inline展開に陥るので、その場合、inline属性は <br> 無視されます。これは、C++のinline展開にも言えることで、標準委員会でも <br> 「inline展開は必ずしもinline展開されるとは限らない」と定義されてます。 <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/20 17:44<> 仕事でだいぶ不規則な生活になって来ました。 <br> 早く持ちなおさないと <br>  <br> 現状を整理してみようと思います。 <br> (1)現在スタックポインタを切り替えることでTSSを使わないタスクスイッチを試みている <br> (2)割り込みハンドラではeip,cs,eflags,error(あれば)がスタックに積まれる事は <br> わかっている <br> (3)iretでは(2)とは逆にeip,cs,eflagsがpopされて実行元に戻ることがわかっている <br> (4)上記を踏まえてタスク初期化時にはeip,cs,eflags等をあらかじめ積んであるような <br> スタックを用意すれば良いという事がわかっている。 <br> (5)(1)～(4)のようにタスクスイッチすることは可能である。(理論的には） <br>  <br> 問題点 <br> ・関数のinline展開等により割り込みハンドラによって積まれたはずの <br> eip,cs,eflagsがみつからない。 <br> ・スタックダンプマクロをつくりスッタク内を覗き見るがそれらしきものがない。 <br> ・そもそもスタックダンプマクロそのものがスタックを破壊せずに、覗き見できているか <br> ちょっと不安。 <br> ・esp,ebpのつじつまあわせがだんだんとよくわからなくなってきた。 <br> とくに完全には割り込みハンドラまで戻らずiretする場合とか。。。 <br> ・スタックマクロもebp,espどちらを基準にすべきか・・・ <br>  <br> 大混乱中です。 <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/20 17:45<> やっちゃった。ｽｯﾀｸｺﾞﾒｿ <>
デフォルトの名無しさん<>sage<>03/01/20 18:10<> bochsdbg.exe等のデバッガ付きのもので追跡してみては？ <br>  <>
デフォルトの名無しさん<>sage<>03/01/20 18:42<> <a href="../test/read.cgi/tech/1042375466/106" target="_blank">&gt;&gt;106</a> <br> 新手のタクシーですか <>
デフォルトの名無しさん<>sage<>03/01/20 23:45<> ｽｯﾀｸ（・∀・）ｶｺｲｲ！！ <>
デフォルトの名無しさん<>sage<>03/01/20 23:50<> <a href="../test/read.cgi/tech/1042375466/105" target="_blank">&gt;&gt;105</a> <br> &gt;・スタックマクロもebp,espどちらを基準にすべきか・・・ <br>  <br> push pop しても値変わらんので、 <br> ベースポインタって名前の通り ebp をベースにするのが便利でつ。 <br> インテルアーキテクチャー上だったら普通は enter か push ebp + mov ebp, esp の組で <br> 始まるから、ebp + 2 がコール直後の esp の値になるし。 <>
110<>sage<>03/01/20 23:51<> 32bit モードなので ebp + 4 の間違いですた。 <>
デフォルトの名無しさん<>sage<>03/01/21 22:18<> <a href="../test/read.cgi/tech/1042375466/110" target="_blank">&gt;&gt;110</a> <br> &gt; ベースポインタって名前の通り ebp をベースにするのが便利でつ。 <br>  <br> フレームポインタの省略とかやられると辛いので、ここはきちんとアセンブラでスタックの値をとって、表示は C++ とかでやるのが良いと思う。 <>
110<>sage<>03/01/22 01:26<> <a href="../test/read.cgi/tech/1042375466/112" target="_blank">&gt;&gt;112</a> <br> う、確かにそうだな。 <br> gcc のinfoページ読んだら、-fomit-frame-pointer か -O2以上をつけると <br> フレームポインタ省略されてしまうってか言ってあった。フレームポインタ省略を <br> 禁止する方法も無さそうだし。 <>
デフォルトの名無しさん<>sage<>03/01/22 01:50<> 楽しげだ。でも仕事忙しくて傍観してるしか能がないおれ。 <>
デフォルトの名無しさん<>sage<>03/01/22 02:06<> <a href="../test/read.cgi/tech/1042375466/114" target="_blank">&gt;&gt;114</a> <br> ここでレスするだけでもちょっとは助けになるんじゃない？ <br> 参加の仕方も色々。 <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/22 22:34<> <a href="../test/read.cgi/tech/1042375466/110" target="_blank">&gt;&gt;110</a>,112 <br> ありがとうございます。 <br> やはりespからたどるのがよさそうですね。 <br>  <br> 必要なeip,cs,eflagsが積まれてから <br> 二つの関数に突入するので、だいぶ深いところ <br> にいってしまうのが難点ですね。 <br>  <br> &gt; ・スタックダンプマクロをつくりスッタク内を覗き見るがそれらしきものがない。  <br> &gt; ・そもそもスタックダンプマクロそのものがスタックを破壊せずに、覗き見できているか  <br> &gt; ちょっと不安。  <br>  <br> あたりが、まだ解決していないのが痛いです。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/107" target="_blank">&gt;&gt;107</a> <br> &gt; bochsdbg.exe等のデバッガ付きのもので追跡してみては？  <br> bochsのドキュメント読んでみます。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/114" target="_blank">&gt;&gt;114</a> <br> &gt;楽しげだ。でも仕事忙しくて傍観してるしか能がないおれ <br> 最近私もだんだんと仕事が忙しくなってきました。 <br> お互いがんばりましょう。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/22 23:00<> Bochs&GDBデバッグはもしかしてWindowsでは <br> できないのかな？ <br> cygwinでMakeすれば出来そうだけどバイナリはないのだろうか・・・ <br>  <br> 明日ちょっと調べてみます。 <>
デフォルトの名無しさん<>sage<>03/01/22 23:03<> <a href="../test/read.cgi/tech/1042375466/117" target="_blank">&gt;&gt;117</a> <br> バイナリパッケージ入れたら bochsdbg.exe ってやつが入ってるからそれ使えばいい。 <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/22 23:08<> <a href="../test/read.cgi/tech/1042375466/118" target="_blank">&gt;&gt;118</a> <br> それを起動させて <br> cygwin　gdbで <br> gdb <br> target remote localhost:1234 <br> とやってみましたが <br> connection refusedとなりました。 <br>  <br> bochsのドキュメントを軽く読んだところ <br>  <br>  ./configure --enable-debugger --enable-disasm <br>  <br>  ./configure --enable-gdb-stub <br>  <br> 内部デバッガ用、GDB用二つのバイナリがありそうな予感です。 <>
名無し＠沢村<><>03/01/22 23:46<> ヌヒ等よ、ＯＳをつくために頑張っているヌヒ等よ。 <br> ところで新しいＯＳができたというﾆｭｰｽはまだ聞かないが、ヌヒ等よ何をしている？ <br> ヌヒ等よ、早くやれ！！ <>
118<>sage<>03/01/22 23:56<> <a href="../test/read.cgi/tech/1042375466/119" target="_blank">&gt;&gt;119</a> <br> bochsdbg.exe は ./configure --enable-debugger --enable-disasm の方だと思われ。 <br> これを普通の bochs みたいに起動すると、bios の一番最初の命令で停止した状態で <br> プロンプトが出るから、ブレークポイント置くとかいろいろ準備した後で c で実行開始する。 <br>  <>
名無し＠沢村<><>03/01/23 00:29<> <a href="../test/read.cgi/tech/1042375466/119" target="_blank">&gt;&gt;119</a> <br> ごたくはいいから早くつくれ！！ <>
 <>sage<>03/01/23 12:37<> ↑酷ぇなおい <>
デフォルトの名無しさん<>sage<>03/01/23 15:07<> <a href="../test/read.cgi/tech/1042375466/123" target="_blank">&gt;&gt;123</a> <br> 何か沢村の名を騙った偽者に見える。 <br>  <>
FreeDOS教徒<>osage<>03/01/23 15:55<> <a href="../test/read.cgi/tech/1042375466/124" target="_blank">&gt;&gt;124</a> <br> 122はあきらかに偽物だろ。 <br> 違うのか？ <>
山崎渉<>（＾＾）sage<>03/01/23 21:18<> （＾＾）          <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/23 23:19<> こんなのを作ってみました。 <br> ループはあえて使ってません。 <br>  <br> #define _sysdumpStack4()                             \ <br>                                                      \ <br>     static dword* stack;                             \ <br>     asm volatile("mov %%esp, %0 \n" : "=g"(stack));  \ <br>     _sys_printf("%x  ", *(stack + 0));               \ <br>     _sys_printf("%x  ", *(stack + 1));               \ <br>     _sys_printf("%x  ", *(stack + 2));               \ <br>     _sys_printf("%x  ", *(stack + 3));               \ <br>     _sys_printf("%x  ", *(stack + 4));               \ <br>     _sys_printf("%x  ", *(stack + 5));               \ <br>     _sys_printf("%x  ", *(stack + 6));               \ <br>     _sys_printf("%x  ", *(stack + 7));               \ <br>     _sys_printf("%x  ", *(stack + 8));               \ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/23 23:20<> これをタイマハンドラでこんな風に使ってみます。 <br> void&nbsp;timerHandler()&nbsp;{ <br>  <br> &nbsp;&nbsp;&nbsp;&nbsp;asm&nbsp;volatile("pushl&nbsp;$0x87654321"); <br> &nbsp;&nbsp;&nbsp;&nbsp;asm&nbsp;volatile("pushl&nbsp;$0x87654321"); <br> &nbsp;&nbsp;&nbsp;&nbsp;asm&nbsp;volatile("pushl&nbsp;$0x87654321"); <br> &nbsp;&nbsp;&nbsp;&nbsp;asm&nbsp;volatile("pushl&nbsp;$0x87654321"); <br> &nbsp;&nbsp;&nbsp;&nbsp;_sysdumpStack4(); <br>  <br> &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;EOI&nbsp;is&nbsp;below&nbsp;for&nbsp;IRQ&nbsp;8-15&nbsp;*/ <br> &nbsp;&nbsp;&nbsp;&nbsp;outportb(0xA0,&nbsp;0x20); <br> &nbsp;&nbsp;&nbsp;&nbsp;outportb(0x20,&nbsp;0x20); <br>  <br> &nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;determine&nbsp;next&nbsp;process&nbsp;or&nbsp;thread&nbsp;and&nbsp;run&nbsp;it&nbsp;*/ <br> &nbsp;&nbsp;&nbsp;&nbsp;ProcessManager&&nbsp;pm&nbsp;=&nbsp;ProcessManager::instance(); <br> &nbsp;&nbsp;&nbsp;&nbsp;pm.schedule(); <br>  <br> &nbsp;&nbsp;&nbsp;&nbsp;iret(); <br> &nbsp;&nbsp;&nbsp;&nbsp;return; <br> } <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/23 23:23<> その結果 <br> 0x00001DBF　0x00001DBF　0x87654321　0x87654321　0x0000000E　0x00000014　0x002FFF <br> 6C　0x00001FAB　0x0000000 <br> と表示されます。 <br> 0x87645321が二つ消えてしまいます。 <br> 該当部をディスアセンブルしたのは <br> 00000FD0　55　　　　　　　　push&nbsp;ebp <br> 00000FD1　89E5　　　　　　　mov&nbsp;ebp,esp <br> 00000FD3　83EC08　　　　　　sub&nbsp;esp,byte&nbsp;+0x8 <br> 00000FD6　6821436587　　　　push&nbsp;dword&nbsp;0x87654321 <br> 00000FDB　6821436587　　　　push&nbsp;dword&nbsp;0x87654321 <br> 00000FE0　6821436587　　　　push&nbsp;dword&nbsp;0x87654321 <br> 00000FE5　6821436587　　　　push&nbsp;dword&nbsp;0x87654321 <br> 00000FEA　892530800000　　　mov&nbsp;[0x8030],esp <br> 00000FF0　A130800000　　　　mov&nbsp;eax,[0x8030] <br> 00000FF5　C70424BF1D0000　　mov&nbsp;dword&nbsp;[esp],0x1dbf <br> 00000FFC　8B00　　　　　　　mov&nbsp;eax,[eax] <br> 00000FFE　89442404　　　　　mov&nbsp;[esp+0x4],eax <br> 00001002　E849F8FFFF　　　　call&nbsp;0x850 <br> 00001007　A130800000　　　　mov&nbsp;eax,[0x8030] <br> 0000100C　C70424BF1D0000　　mov&nbsp;dword&nbsp;[esp],0x1dbf <br> 00001013　8B4004　　　　　　mov&nbsp;eax,[eax+0x4] <br> 00001016　89442404　　　　　mov&nbsp;[esp+0x4],eax <br> 0000101A　E831F8FFFF　　　　call&nbsp;0x850 <br> 0000101F　A130800000　　　　mov&nbsp;eax,[0x8030] <br> 00001024　C70424BF1D0000　　mov&nbsp;dword&nbsp;[esp],0x1dbf <br> 0000102B　8B4008　　　　　　mov&nbsp;eax,[eax+0x8] <br> 0000102E　89442404　　　　　mov&nbsp;[esp+0x4],eax <br> 00001032　E819F8FFFF　　　　call&nbsp;0x850 <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/23 23:25<> 表示ロジックでスタックが上書きされたりするのでしょうか。 <br> 大混乱です。 <br> 観測しようとすると状態が変わるのか <br> もともと状態がおかしいのか <br> 正常なのか。 <br> ・・・・・・・ <>
超先生＠OS板  </b>◆leaf/RYZgY <b><>sage<>03/01/23 23:26<> <a href="../test/read.cgi/tech/1042375466/127" target="_blank">&gt;&gt;127</a> <br> ebpを基準にしないとダメポ・・・。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/23 23:29<> <a href="../test/read.cgi/tech/1042375466/131" target="_blank">&gt;&gt;131</a> <br> あ、もしかして他の関数をcallしてしまうとおかしくなるかも。。。 <br> ってことでしょうか。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/23 23:31<> ということは <br> その関数に入ってからスタックには積まれた者はebpからするとマイナス <br> ということですよね。あれちょっと自信ないです。 <>
デフォルトの名無しさん<>sage<>03/01/23 23:32<> mov　dword　[esp],0x1dbf <br> mov　[esp+0x4],eax <br> でスタックの内容を書き換えているので正常です <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/23 23:34<> <a href="../test/read.cgi/tech/1042375466/134" target="_blank">&gt;&gt;134</a> <br> ありがとうございます。 <br> 書き換えが起こっているのは、関数callのせいなのでしょうか。 <br>  <br> ebp基準にして0x87654321を探ってみたところ <br> 3つしか表示されませんでした。 <br>  <br> スタックに全く影響を与えるのは無理なのでしょうか。 <br> いやそんなことはないですよね。 <>
デフォルトの名無しさん<>sage<>03/01/23 23:35<> <a href="../test/read.cgi/tech/1042375466/130" target="_blank">&gt;&gt;130</a> <br> &gt; 観測しようとすると状態が変わるのか <br> 量子力学の不確定性みたい... <br>  <br> <a href="../test/read.cgi/tech/1042375466/132" target="_blank">&gt;&gt;132</a> <br> &gt; あ、もしかして他の関数をcallしてしまうとおかしくなるかも。。。 <br> 先日のinline論議真面目に読んでないんだね... <>
超先生＠OS板  </b>◆leaf/RYZgY <b><>sage<>03/01/23 23:38<> こんな感じか。 <br>  <br> asm volatile("mov %%esp, %0 \n" : "=g"(stack)); \ <br> 00000FEA　892530800000　　　mov [0x8030],esp <br> 00000FF0　A130800000　　　　mov eax,[0x8030] <br>  <br>  <br> 00000FF5　C70424BF1D0000　　mov dword [esp],0x1dbf ; 引数 "%x " <br>  <br> 00000FFC　8B00　　　　　　　mov eax,[eax] ; 引数 *(stack + 0) <br> 00000FFE　89442404　　　　　mov [esp+0x4],eax <br>  <br> 00001002　E849F8FFFF　　　　call 0x850 ; _sys_printf <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/23 23:42<> &gt;<a href="../test/read.cgi/tech/1042375466/132" target="_blank">&gt;&gt;132</a> <br> &gt;&gt; あ、もしかして他の関数をcallしてしまうとおかしくなるかも。。。 <br> &gt;先日のinline論議真面目に読んでないんだね... <br>  <br> もちろん読んでいますが理解が遅いのです。申し訳ありません。m(__)m <br>  <>
デフォルトの名無しさん<>sage<>03/01/23 23:47<> _sys_printf("%x ", *(stack + 0)); \ <br> _sys_printf("%x ", *(stack + 1)); \ <br> _sys_printf("%x ", *(stack + 2)); \ <br> _sys_printf("%x ", *(stack + 3)); \ <br> _sys_printf("%x ", *(stack + 4)); \ <br> _sys_printf("%x ", *(stack + 5)); \ <br> _sys_printf("%x ", *(stack + 6)); \ <br> _sys_printf("%x ", *(stack + 7)); \ <br> _sys_printf("%x ", *(stack + 8)); \ <br>  <br> を、 <br>  <br> unsigned int value[9]; <br> value[0] = *(stack + 0); <br> value[1] = *(stack + 1); <br> ... <br>  <br> printf("%d\n", value[0]); <br> ... <br>  <br> でやったらどうですか？ <br>  <br>  <br>  <>
デフォルトの名無しさん<>sage<>03/01/23 23:47<> <a href="../test/read.cgi/tech/1042375466/138" target="_blank">&gt;&gt;138</a> <br> いい人 (*^_^*) <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/23 23:56<> <a href="../test/read.cgi/tech/1042375466/139" target="_blank">&gt;&gt;139</a> <br> 0x87654321&nbsp;&nbsp;0x87654321&nbsp;&nbsp;0x87654321&nbsp;&nbsp;0x87654321&nbsp;&nbsp;0x34353536&nbsp;&nbsp;0x00000034&nbsp;&nbsp;0x000000 <br> と表示されました。 <br> ありがとうございます。 <br>  <br> すばらしいのですが <br> 何故解決したかと、なぜ_sys_printfの引数がスタックを上書きしたかが <br> わかりません・・・ <>
デフォルトの名無しさん<>sage<>03/01/23 23:58<> <a href="../test/read.cgi/tech/1042375466/135" target="_blank">&gt;&gt;135</a> <br> 関数callというか <br> 00000FD3 83EC08 sub esp,byte +0x8 <br> でコンパイラはメモリアクセス用の一時変数を確保しているのですが <br> その後の <br> push　dword 0x87654321 <br> でスタックポインタが変更されたのに気付いていないのが原因です <br>  <br>  <>
デフォルトの名無しさん<>sage<>03/01/24 00:05<> ↓泣けてきます。 (TдT) <br> <a href="../test/read.cgi/tech/1042375466/103" target="_blank">&gt;&gt;103</a> <br> &gt; ただ、このスレ見てる奴は、スタックがどうのこうのぐらいはだいたいわかってると思う。 <>
デフォルトの名無しさん<>sage<>03/01/24 00:11<> あ、スタック仕様はエクスパンドアップ、それともダウン？どっち？ <>
デフォルトの名無しさん<>sage<>03/01/24 00:12<> <a href="../test/read.cgi/tech/1042375466/141" target="_blank">&gt;&gt;141</a> <br> とりあえずここは一旦Monaのカーネルから離れて、 <br> 簡単な関数を書いてアセンブリ出力と睨めっこすることをお勧めします。 <>
デフォルトの名無しさん<>sage<>03/01/24 00:14<> コンパイラまでお作りになってるL様の偉大さを思い知る……か <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/24 00:14<> <a href="../test/read.cgi/tech/1042375466/142" target="_blank">&gt;&gt;142</a> <br> なるほど。 <br> ということは、インラインアセンブラなどを使わなければ <br> 一番最初の_sysdumpStack4()は普通にスタック内を表示 <br> できているのでしょうか。 <br>  <br> そもそもの動機として <br> 割り込みのハンドラへ行くときにスタックにpushされているはずの <br> eip,cs,eflagsが見当たらないので <br>  <br> ・もともとスタックが壊れている <br> ・表示ロジックがスタックを壊している <br> ・表示ロジックが間違っている。 <br> の切り分けをしたいというのがありました。 <br>  <br> なかなか難しいです。 <br> でも勉強になります。 <br>  <>
超先生＠OS板  </b>◆leaf/RYZgY <b><>sage<>03/01/24 00:15<> こんな感じ。 <br>  <br> [引数格納用] +--|&lt;=Stackframe &lt;- esp <br> [auto変数郡] +--|　　　　　　 　　&lt;- ebp <br> [旧ebp] <br> [eip] <br> [cs] <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/24 00:16<> <a href="../test/read.cgi/tech/1042375466/145" target="_blank">&gt;&gt;145</a> <br> 実は最近それはやってみました。 <br> 引数がどのように格納されるか戻り値がどこに格納されるか。 <br> AUTO変数の確保のされ方等 <br> 基本は学んだつもりなのですが <br> 応用が利きません・・・ <>
デフォルトの名無しさん<>sage<>03/01/24 00:25<> 146 <br> またあらわれたLﾀﾝ。 <br> キャリアが違うと思うんだけど <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/01/24 00:34<> <a href="../test/read.cgi/tech/1042375466/150" target="_blank">&gt;&gt;150</a> <br> #146は、わてちゃいますよーー <>
デフォルトの名無しさん<>sage<>03/01/24 00:38<> Lﾀﾝが実際に登場した。 <br> ではなくて、またLﾀﾝの話が引き合いに出された。 <br> という意味だと思ふ。 <>
超先生＠OS板  </b>◆leaf/RYZgY <b><>sage<>03/01/24 00:38<> ＜後ろ頭＞y-~~~ 参考URL <br> Linking C++ and Assembly <br> ttp://www.cs.uakron.edu/~margush/306/LinkingWithCplusplus.html <>
デフォルトの名無しさん<>sage<>03/01/24 00:58<> <a href="../test/read.cgi/tech/1042375466/113" target="_blank">&gt;&gt;113</a> <br> -fno-omit-frame-pointerで、出来ない？ <br>  <>
113<>sage<>03/01/24 04:42<> <a href="../test/read.cgi/tech/1042375466/154" target="_blank">&gt;&gt;154</a> <br> ｶﾞｰﾝ(ﾟдﾟ|||)　知らなかった。 no- つけると逆になるんだ、、、 <br> info 見直したら書いてあるし、、、 <br>  <>
デフォルトの名無しさん<>sage<>03/01/24 15:24<> <a href="../test/read.cgi/tech/1042375466/113" target="_blank">&gt;&gt;113</a> <br> gccでx86なら、-fomit-frame-pointerを明示的につけない限りフレームポインタは省略されません。 <br> -Ox時に省略されるのは、省略してもデバッグ可能なアーキテクチャのみ。 <br>  <br> それはともかく、俺なら割り込みハンドラでいきなりCコードに飛ばずに、asm glue codeを一回経由するけど。 <br>  <br>  <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/25 17:34<> <a href="../test/read.cgi/tech/1042375466/153" target="_blank">&gt;&gt;153</a> <br> 資料提示ありがとうございます。 <br>  <br> スタック切り替えによるタスク切り替え、テストに *一応* 成功しました。 <br>  <br> 関連するコードは <br> http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/mona_v1.0/src/monaIhandler.cpp?rev=1.23&content-type=text/vnd.viewcvs-markup <br> のtimerHandler() <br> http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/mona_v1.0/src/ProcessManager.cpp?rev=1.54&content-type=text/vnd.viewcvs-markup <br> http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/mona_v1.0/src/include/ProcessManager.h?rev=1.23&content-type=text/vnd.viewcvs-markup <br> 辺りです。 <br>  <br> ただ何度もタスクスイッチを切り返すとfault0dが発生します。 <br> これはただいま調査中です。 <br>  <br>  <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/25 17:45<> すごく悩んでいろいろ考えた結果の実装が <br> なんとなく動いたのはうれしいのですが <br> 漏れがありそうで怖いですね。 <br>  <br> ちょっと時間を置いて見直してみます。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><><>03/01/25 22:37<> リリースのお知らせです。 <br> Mona develop beta 0.02bをリリースしました。 <br>  <br> ダウンロードは↓からお願いいたします。 <br> ttp://mona.sourceforge.jp/higepon/image/mona_beta0_02b.lzh <br>  <br> 現バージョンの特徴は <br>  <br> ・TSSを使わないタイマー割り込みによるタスクスイッチの実現 <br>  <br> ・STLの導入。std::swapは実際にタスクスイッチで使用しています。 <br>  <br> ・VirtualPC対応(匿名希望さんに感謝) <br>  <br> ・cpuid命令によるベンダーIDの表示 <br>  <br> ・FAULT時のレジスタ・スタックダンプ <br>  <br> もしよろしかったら <br> MonaBBS動作報告版に専用スレッドを作成いたしましたので <br> 動作報告をお待ちしています。 <br> ttp://monaos.hp.infoseek.co.jp/cgi-bin/2ch/test/read.cgi/run/1043500934/l50 <>
デフォルトの名無しさん<><>03/01/26 00:40<> &gt;割り込みハンドラでいきなりCコードに飛ばずに、asm glue codeを一回経由するけど。 <br> 激しく同意。 <br>  <br> timerEntry: <br>     pusha <br>     movl    %esp, %eax <br>     pushl   %eax <br>     call    timerHandler <br>     addl    $4, %esp <br>     popa <br>     iret <>
デフォルトの名無しさん<><>03/01/26 00:41<> typedef struct { <br>     dword    edi; <br>     dword    esi; <br>     dword    ebp; <br>     dword    esp2; <br>     dword    ebx; <br>     dword    edx; <br>     dword    ecx; <br>     dword    eax; <br>     dword    eip; <br>     dword    cs; <br>     dword    eflag; <br>     dword    esp; <br>     dword    ss; <br> } StackFrame; <br>  <br> void timerHandler(StackFrame *frame) <br> { <br>     printf("eip %d", frame-&gt;eip); <br> } <br>  <br> こんな感じ。 <br> 既存のOSのコードを軽く眺めてみるのも良いと思う。 <>
デフォルトの名無しさん<>sage<>03/01/26 08:37<> &gt;&gt;・STLの導入。std::swapは実際にタスクスイッチで使用しています。 <br> をー！ <br> OSカーネルにSTLを採用した例としては、世界初では？ <br>  <br> （MSの人に、WinNTカーネルをSTLで記述しなおすみたいな話は <br> 聞きましたが･･･バッファオーバーラン対策だそうで、でも未確定情報なんで） <br>  <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><><>03/01/26 19:47<> <a href="../test/read.cgi/tech/1042375466/160" target="_blank">&gt;&gt;160</a> <br> <a href="../test/read.cgi/tech/1042375466/161" target="_blank">&gt;&gt;161</a> <br> なるほどありがとうございます。 <br> 上記のメリットはスタックをきちんと <br> 自分でコントロールできることでしょうか。 <br>  <br> &gt;をー！ <br> &gt;OSカーネルにSTLを採用した例としては、世界初では？ <br>  <br> もしそうならうれしいですね。 <br> キーボードドライバにstd::queueを使ってみて遊んでいます。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/26 20:25<> クラスKeyBoardManagerにgetCharacter()メソッドを追加してみました。 <br> while&nbsp;((ch&nbsp;=&nbsp;km.getCharacter())&nbsp;==&nbsp;-1); <br> _sys_printf("%c",&nbsp;ch); <br>  <br> とやることで、入力されたキーを出力できるようになりました。 <br>  <br> ソースはこの辺です。 <br> ttp://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/mona_v1.0/src/KeyBoardManager.cpp?rev=1.7&content-type=text/vnd.viewcvs-markup <br>  <br> これはシングルタスクではうまくいくのですが <br> マルチタスクだとwhileループを抜けてしまいます。 <br> つまり何も初期化されていないchを表示してしまう。 <br> なんでだろう。。 <br> 調査中です。 <br> でもだいぶ楽しいです。 <>
デフォルトの名無しさん<>sage<>03/01/26 20:42<> プログラムの勉強しようと思うんだけど、 <br> 何から始めれば良いの？ <br> Visual BasicとかC言語とかあるけど、 <br> 最初はどれ？ <br> Visual Basic？ <>
デフォルトの名無しさん<>sage<>03/01/26 21:43<> <a href="../test/read.cgi/tech/1042375466/165" target="_blank">&gt;&gt;165</a> は誤爆です。すいません。 <>
デフォルトの名無しさん<>sage<>03/01/26 22:30<> &gt;165 <br> アセンブラとＣ言語。 <br> アセンブラのみでもいいのだけど、アセンブラだとＪＭＰしまくりで、 <br> スパゲッティに慣れるとよくないから、Ｃのような構造化言語と併用 <br> していくといいよ。 <>
デフォルトの名無しさん<>sage<>03/01/26 23:41<> <a href="../test/read.cgi/tech/1042375466/167" target="_blank">&gt;&gt;167</a> <br> 誤爆にﾏｼﾞﾚｽ．．． <br>  <br> ていうか、アセンブラとＣを併用するようなプログラムは入門には高度すぎだろ。 <br> 確かに両方やっておいた方が機械の仕組みがわかっていいのだが、、、 <br>  <>
デフォルトの名無しさん<>sage<>03/01/27 02:51<> ＞キーボードドライバにstd::queueを使ってみて遊んでいます。 <br> キーボードドライバは std::deque のほうが向いてるよ。 <br> historyたぐるときなどは、queueよりも高機能実装できるのだ！ <br>  <br> なんて、ツッコミが後から来ても、元の型を queue -&gt; deque へ <br> 変化させるだけで実装できてしまうのがSTLの強み。 <br>  <br> Ｌ氏が指摘するように、STLを使うとコードが太る傾向があるが、 <br> これも将来的にコンパイラ技術が上昇すると共に解決される問題なので <br> あまり危惧することでもないと思われ。 <>
henoheno@OS板<>sage<>03/01/27 13:51<> Mona上にSTLportを移植された件、ベースになっているバージョンは <br> 4.5.3という事でよろしいでしょうか。（　´∀｀）ネソノタメ <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/27 22:25<> <a href="../test/read.cgi/tech/1042375466/169" target="_blank">&gt;&gt;169</a> <br> &gt;キーボードドライバは std::deque のほうが向いてるよ。 <br> &gt;historyたぐるときなどは、queueよりも高機能実装できるのだ！ <br>  <br> なるほど。 <br>  <br> &gt;なんて、ツッコミが後から来ても、元の型を queue -&gt; deque へ <br> &gt;変化させるだけで実装できてしまうのがSTLの強み。 <br>  <br> ですねぇ。うれしいです。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/170" target="_blank">&gt;&gt;170</a> <br> こんばんはhenohenoさん。 <br> &gt;Mona上にSTLportを移植された件、ベースになっているバージョンは <br> &gt;4.5.3という事でよろしいでしょうか。（　´∀｀）ネソノタメ <br>  <br> はい、あってます。 <br> ところでバージョンが何か問題でしょうか。 <br> 気になります。 <br>  <br>  <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/28 00:34<> キーボード入力を二つのタスクを走らせた状態で <br> 片方のタスクで取得する実験をしてみました。 <br>  <br> キー入力取得タスクの肝 <br> while&nbsp;(true)&nbsp;{ <br> &nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;((ch&nbsp;=&nbsp;km.getCharacter())&nbsp;==&nbsp;-1)&nbsp;{} <br> &nbsp;&nbsp;&nbsp;&nbsp;_sys_printf("%c\n",&nbsp;ch); <br> } <br>  <br> これを実行するとchが不定の状態で <br> なぜか_sys_printfのところが実行されることがある。 <br>  <br> 「実行されることがある」とは <br> タスク実行中キー入力がない場合whileの条件は <br> ほとんどtrueになるが50回に1回くらいnot&nbsp;trueになる <br>  <br> getCharagter()の実装はまじめにキーを返すバージョンや <br> return&nbsp;-1; <br> オンリーだけでも上記の現象がおきる。 <br>  <br> (1) <br> while&nbsp;((ch&nbsp;=&nbsp;km.getCharacter())&nbsp;==&nbsp;-1) <br> ⇒ <br> while&nbsp;((ch&nbsp;=&nbsp;km.getCharacter())&nbsp;==&nbsp;120) <br> とやっても <br> この現象は起きます。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/28 00:34<> (2) <br> while&nbsp;((ch&nbsp;=&nbsp;km.getCharacter())&nbsp;==&nbsp;-1) <br> ⇒ <br> ch&nbsp;=&nbsp;-1; <br> while&nbsp;(ch&nbsp;==&nbsp;-1) <br> ではこの現象は起きません。 <br>  <br> (3) <br> while&nbsp;((ch&nbsp;=&nbsp;km.getCharacter())&nbsp;==&nbsp;-1) <br> ⇒ <br> while&nbsp;((ch&nbsp;=&nbsp;testkey())&nbsp;==&nbsp;120) <br> クラスメンバではなくて普通の関数でも <br> この現象は起きます。 <br>  <br> またシングルタスクモードではこの現象は起きません。 <br> なんでだろうなあ。 <>
デフォルトの名無しさん<>sage<>03/01/28 01:01<> <a href="../test/read.cgi/tech/1042375466/172-173" target="_blank">&gt;&gt;172-173</a> <br> MutexやWaitForSingleObjectみたいなの実装しないと <br> その手のことは安定して使えないと思われ <>
デフォルトの名無しさん<>sage<>03/01/28 01:07<> ↑すまん、MONAのカーネルの仕組み良く知らんのだけど、 <br> キーボード系などの資源は、タスク側に解放するのではなく、完全に隠蔽した <br> ほうがいいかと。キーボードの入力状況は、カーネル内の一箇所のみに蓄える。 <br>  <br> std::deque&lt; char &gt; core_keybd_history; <br> と定義し、唯一のカーネルプロセスで <br> if( any_keybd_input == true ) <br> { <br> core_keybd_history.push_front( km.getCharacter() ) <br> } <br> という感じで蓄える。 <br> で、km.getCharacter() とやらは、アプリ側には非公開。 <br>  <br> で適切なタイミングで、カーネルが保持しているプロセス・デスクリプタに <br> historyを適切に集配する。 <br> この適切なタイミングとは、そのプロセスに処理権利が移る瞬間かと。（本当にすまん、MONAについて何も知らないので他にもっと適切なタイミングがあるかも） <br> 各プロセス・デスクリプタに以下のようなヒストリーバッファを用意。 <br> std::deque&lt; char &gt; process_keybd_history; <br>  <br> アプリ側は盲目的に  <br> process_keybd_history.end()で取り出し、不要になったら <br> process_keybd_history.pop_back()で実現かと。 <br>  <br> 物理的なキーボード状態が格納されてる唯一のバッファをcore_keybd_historyに絞り <br> あとは配布次第ってことで。 <br>  <>
175<>sage<>03/01/28 01:11<> process_keybd_historyは <br> カーネルからはpush_front()で書き込まれ <br> アプリ側からはend() -&gt; pop_back() 読み出されると。 <br>  <>
デフォルトの名無しさん<>sage<>03/01/28 03:28<> <a href="../test/read.cgi/tech/1042375466/172" target="_blank">&gt;&gt;172</a> <br> キューに何も入ってないタイミングで、取り出そうとしたら駄目だろうね。 <br> 最初はスピンロックからでもやると良いかと。 <>
デフォルトの名無しさん<>sage<>03/01/28 21:39<> 私もOS書いてみたいのう…でも時間がない… <br> 上の割り込みハンドラのコードの <br> 00000FF0　A130800000　　　　mov eax,[0x8030] <br> でeaxを壊してるみたいだけど、これだと割り込みから帰ったときに動かないよ <br> 全体を読んでないからわかんないけど <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/28 22:13<> <a href="../test/read.cgi/tech/1042375466/174" target="_blank">&gt;&gt;174</a> <br> &gt;MutexやWaitForSingleObjectみたいなの実装しないと <br> &gt;その手のことは安定して使えないと思われ <br>  <br> アドバイスありがとうございます。 <br> Mutex調べました。 <br> http://yougo.ascii24.com/gh/13/001328.html <br> なるほど、この辺の機構はタネンバウム本に <br> 書いてあった気がします。 <br>  <br> ただし今回のケースは <br> タスクは2つありますが、キーボード情報を取得するのは片方の <br> タスクのみなので原因がつかみきれません。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/28 22:20<> <a href="../test/read.cgi/tech/1042375466/175" target="_blank">&gt;&gt;175</a> <br> <a href="../test/read.cgi/tech/1042375466/176" target="_blank">&gt;&gt;176</a> <br>  <br> &gt; historyを適切に集配する。 <br> &gt; この適切なタイミングとは、そのプロセスに処理権利が移る瞬間かと。（本当にすまん、MONAについて何も知らないので他にもっと適切なタイミングがあるかも） <br> &gt; 各プロセス・デスクリプタに以下のようなヒストリーバッファを用意。 <br> &gt; std::deque&lt; char &gt; process_keybd_history; <br>  <br> なるほど勉強になります。 <br>  <br> 適切なタイミングでpushと。 <br> std::deque&lt; char &gt; core_keybd_history; <br> ↓ <br> std::deque&lt; char &gt; process_keybd_history; <br>  <br> あとは各プロセスにキーボードバッファを持たせればよいのかな。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/28 22:24<> <a href="../test/read.cgi/tech/1042375466/178" target="_blank">&gt;&gt;178</a> <br> すいません、現段階でどの部分に当たることなのか <br> 分かりませんが、_switchProcess()マクロに <br> eaxを壊すところがあったので直しました。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/28 22:28<> <a href="../test/read.cgi/tech/1042375466/177" target="_blank">&gt;&gt;177</a> <br> &gt; キューに何も入ってないタイミングで、取り出そうとしたら駄目だろうね。 <br> &gt; 最初はスピンロックからでもやると良いかと。 <br>  <br> 一応keyQueue_.empty()チェックを入れてるので <br> 取り出しはしないはずです。 <br>  <br> char&nbsp;KeyBoardManager::getCharacter()&nbsp;{ <br>  <br> &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(keyQueue_.empty())&nbsp;return&nbsp;-1; <br>  <br> &nbsp;&nbsp;&nbsp;&nbsp;KeyInfo&nbsp;info&nbsp;=&nbsp;keyQueue_.back(); <br> &nbsp;&nbsp;&nbsp;&nbsp;keyQueue_.pop(); <br>  <br> &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(info.modifiers&nbsp;&&nbsp;KEY_MODIFIER_UP)&nbsp;return&nbsp;-1; <br> &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(info.keycode&nbsp;&lt;&nbsp;'a'&nbsp;&&&nbsp;info.keycode&nbsp;&gt;&nbsp;'z')&nbsp;return&nbsp;-1; <br>  <br> &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(char)(info.keycode); <br> } <br>  <>
デフォルトの名無しさん<>sage<>03/01/29 00:00<> <a href="../test/read.cgi/tech/1042375466/182" target="_blank">&gt;&gt;182</a> <br>  if (keyQueue_.empty()) return -1; <br>  <br> で、-1 返してるじゃん。 <br> とりあえず、そこで、スピンロック。 <>
デフォルトの名無しさん<>sage<>03/01/29 01:21<> <a href="../test/read.cgi/tech/1042375466/159" target="_blank">&gt;&gt;159</a> <br> そういうちょっとしたバイナリでも <br> リリースとして↓に置いておいた方が良いと思うよ。 <br> https://sourceforge.jp/projects/mona/files/ <br>  <br> ダウンロード数も分かるし。 <>
178<>sage<>03/01/30 21:17<> 詳しく呼んで見たけど <br> void timerHandler() <br> がいろんなレジスタ壊してるように見える… <br> (ほかの人もいってると思うけど、割り込みハンドラの入り口ぐらいは <br>  アセンブリで書いたほうがいいのではないかなあ) <>
henoheno@OS板 </b>◆mXrBwDDzyw <b><>sage<>03/01/30 21:46<> <a href="../test/read.cgi/tech/1042375466/171" target="_blank">&gt;&gt;171</a> <br> &gt; ところでバージョンが何か問題でしょうか。 <br> &gt; 気になります。 <br>  <br> いずれ実装する方や将来のバージョンに合わせる方や <br> 検証する方が来歴を知りたくなるのではないかと思い <br> ましたので、さわりだけ聞いてみました（　´∀｀） <br>  <>
超先生＠OS板  </b>◆leaf/RYZgY <b><>sage<>03/01/30 21:56<> ＜後ろ頭＞y-~~~ <br> timerHandlerだけpusha/popaで括ってないのは何故・・・？ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/30 23:04<> <a href="../test/read.cgi/tech/1042375466/184" target="_blank">&gt;&gt;184</a> <br> ご指摘ありがとうございます。 <br> https://sourceforge.jp/projects/mona/files/ <br> にリリースいたしました。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/185" target="_blank">&gt;&gt;185</a> <br> &gt;詳しく呼んで見たけど <br> &gt;void timerHandler() <br> &gt;がいろんなレジスタ壊してるように見える… <br>  <br> すいません。 <br> どの辺がレジスタを壊しているのでしょうか。 <br> ご指摘いただければ幸いです。m(__)m <br>  <br> <a href="../test/read.cgi/tech/1042375466/186" target="_blank">&gt;&gt;186</a> <br> henohenoさん <br> &gt;さわりだけ聞いてみました（　´∀｀） <br> 了解です。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/30 23:08<> <a href="../test/read.cgi/tech/1042375466/187" target="_blank">&gt;&gt;187</a> <br> &gt;＜後ろ頭＞y-~~~ <br> &gt;timerHandlerだけpusha/popaで括ってないのは何故・・・？ <br>  <br> すいません単純に_switchProcess()の最後でiretしているからです。 <br> やはりまずいでしょうか。 <>
58<>sage<>03/01/31 00:03<> <a href="../test/read.cgi/tech/1042375466/188" target="_blank">&gt;&gt;188</a> <br> その時点のソースが見れたら便利なので、 <br> （CVSで合わせて取って来させるのは敷居高すぎ） <br> 一緒に置いておくとよいと思います。 <br>  <br> ほとんど利用されないと思うのですが、 <br> GPLという建前もありますし、 <br> ソースのサイズでコード量の増減が一目で分かりますし。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><><>03/01/31 00:39<> <a href="../test/read.cgi/tech/1042375466/190" target="_blank">&gt;&gt;190</a> <br> &gt;その時点のソースが見れたら便利なので、 <br> &gt;（CVSで合わせて取って来させるのは敷居高すぎ） <br> &gt;一緒に置いておくとよいと思います。 <br>  <br> ご指摘ありがとうございます。 <br> ソースつきのファイルもリリースしておきました。 <br> 次回からはソースつきのみのリリースとなるかと思います。 <br>  <br> みなさんいっぱいダウンロードしてください（笑） <>
デフォルトの名無しさん<><>03/01/31 00:47<> お前ら動作報告しる <>
190<>sage<>03/01/31 01:10<> 失礼しました。私は58氏とは関係ない人物です。 <br> 別のスレに書いたCookieに引きずられていました。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/191" target="_blank">&gt;&gt;191</a> <br> ソースとバイナリを分けて提供するのが普通ですが、 <br> なぜ「ソース込みのバイナリ」なのでしょうか？ <br> 私が誤解を招くような書き方をしたのが原因かもしれませんが。 <>
190<>sage<>03/01/31 01:13<> あともう一点、ビルドにLinuxやCygwinが必要なのに、 <br> ソースをLZHで提供する意味がよく分かりません。 <br> Mozillaのソース配布物を見ていただくと一目瞭然ですが、 <br> ソースが巨大になってくるとtar.bz2が群を抜いて圧縮率が高くなるので、 <br> UNIX(的)システムを前提にするならtar.bz2をお勧めします。 <br>  <br> バイナリなら別にLZHでも構わないとは思いますが、 <br> MeやXPではデフォルトでZIPが扱えることも考慮されると良いかと。 <>
デフォルトの名無しさん<><>03/01/31 02:09<> <a href="../test/read.cgi/tech/1042375466/192" target="_blank">&gt;&gt;192</a> <br> Pentium100MHz + ASUS P/I-55TP4 + その他 の自作ＰＣで動きますた。 <br> って動作報告はどこにするのが正しいでつか？ <br>  <>
デフォルトの名無しさん<>sage<>03/01/31 02:20<> ぬるぽの実装はどうなっていますか？ <>
デフォルトの名無しさん<>sage<>03/01/31 02:42<> 　　 （　・∀・）　　　|　|　ｶﾞｯ <br> 　　と　　　　）　 　 |　| <br> 　　　 Ｙ　/ノ　　　 人 <br> 　　　　 /　）　 　 &lt; 　&gt;__Λ∩ <br> 　　 ＿/し'　／／. Ｖ｀Д´）/ ←<a href="../test/read.cgi/tech/1042375466/196" target="_blank">&gt;&gt;196</a> <br> 　　（＿フ彡　　　　　 　　/ <>
デフォルトの名無しさん<>sage<>03/01/31 06:19<> <a href="../test/read.cgi/tech/1042375466/196" target="_blank">&gt;&gt;196</a> <br> 単純に落ちます。 <br> カーネル内例外で落ちないOSないっしょ。 <br>  <br> ……ってネタにマジレスしてみた。 <>
デフォルトの名無しさん<>sage<>03/01/31 06:38<> &gt;あともう一点、ビルドにLinuxやCygwinが必要なのに、  <br> &gt;ソースをLZHで提供する意味がよく分かりません。  <br> LZHではいけない理由もわかりません。 <br>  <br> &gt;Mozillaのソース配布物を見ていただくと一目瞭然ですが、  <br> &gt;ソースが巨大になってくるとtar.bz2が群を抜いて圧縮率が高くなるので、  <br> これは同意。 <br>  <br> &gt;UNIX(的)システムを前提にするならtar.bz2をお勧めします。  <br> UNIX(的)システムを前提にしているのですか？ <br> UNIX(的)システムを前提にするならtar.bz2でないといけないのですか？ <br>  <br> &gt;バイナリなら別にLZHでも構わないとは思いますが、  <br> &gt;MeやXPではデフォルトでZIPが扱えることも考慮されると良いかと。  <br> LhasaもDLできない人がMonaをDLするとは思えませんが。 <>
デフォルトの名無しさん<>sage<>03/01/31 06:42<> 動作報告を掲示板でやると、 <br> 書く側にとってはコピペとか面倒くさいですし、 <br> 受け側にとっても集計能率が悪いです。 <br> Webフォームみたいな形にできないですかね？ <br> もちろん集計はリアルタイムにCGIで行われて皆で見れるような。 <br>  <br> CGIなんか作ってる暇ない？（ｗ <br> メンバ公募なんだからさ。 <>
デフォルトの名無しさん<>sage<>03/01/31 07:05<> 国産ってだけで有難がるとことかLHa厨ってRuby厨に似てるな <br> OSASK厨もよく似てるけど、不思議とNWSOS厨っていないな <br> Mona厨が発生しないことを祈る <>
デフォルトの名無しさん<>sage<>03/01/31 12:11<> <a href="../test/read.cgi/tech/1042375466/199" target="_blank">&gt;&gt;199</a> <br> UNIX風なシステムだったら殆ど必ず標準インストールされている .tgz が一番便利だとおもわれ。 <br> 「ｘｘｘじゃないといけない」じゃなくて、「ｘｘｘだと便利」って発想のがいいんでは？ <>
デフォルトの名無しさん<>sage<>03/01/31 15:50<> Linuxカーネルの解説だけどかなり勉強になるサイトだと思うので、どうぞ <br> http://lkh.linux.or.jp/kernel.html <br> いろいろな日本語資料がどっさりです！ <br> JavaとC#しか扱えないくせに、OSを作ろうと勉強中に見つけました。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/201" target="_blank">&gt;&gt;201</a> <br> 信者がいるようなソフトを作れるプログラマーに私はなりたいのですが．．． <br>  <br>  <>
FreeDOS教徒<>osage<>03/01/31 19:19<> <a href="../test/read.cgi/tech/1042375466/201" target="_blank">&gt;&gt;201</a>さん <br> いまは人数が少ないからいいけど、じきに出てくるって。 <br> 虫がいないソフトには夢がないでしょ。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/203" target="_blank">&gt;&gt;203</a>さん <br> &gt; JavaとC#しか扱えない <br> それもそれで(ﾟдﾟ)ｳﾗﾔﾏｽｨ... <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/31 21:50<> <a href="../test/read.cgi/tech/1042375466/193" target="_blank">&gt;&gt;193</a>,194 <br> いろいろアドバイスありがとうございます。 <br> image,source共に　.tgz , .zipで提供できるよう <br> リリースを更新しました。 <br> 関係者にご迷惑をおかけしましたことをお詫びします。m(__)m <br>  <br> <a href="../test/read.cgi/tech/1042375466/195" target="_blank">&gt;&gt;195</a> <br> 動作テストありがとうございます。 <br> 専用掲示板を用意しましたので <br> こちらから動作報告していただけると助かります。 <br> ttp://monaos.hp.infoseek.co.jp/cgi-bin/2ch/test/read.cgi/run/1043500934/l50 <br>  <br> <a href="../test/read.cgi/tech/1042375466/200" target="_blank">&gt;&gt;200</a> <br> ご提案ありがとうございます。 <br> 各バージョンごとに動作検証項目が違うと思うので <br> それを管理するのは大変かもしれませんね。 <br>  <br> 現在プロジェクトページを管理してくれているyossyさんも <br> お忙しいので実現は難しいかもしれません。 <br>  <br> もちろん作ってくださる方がいらっしゃるなら <br> 大歓迎です（笑） <br>  <br> Wikiみたいなのもありだと思っていますが。。。 <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/31 21:54<> <a href="../test/read.cgi/tech/1042375466/203" target="_blank">&gt;&gt;203</a> <br> 資料ご提示ありがとうございます。 <br> この資料は知っていたのですが、久々に読み返すと <br> 以前とは違う意味で、勉強になりました。 <br>  <br> &gt;&gt;JavaとC#しか扱えないくせに、OSを作ろうと勉強中に見つけました <br>  <br> あーそろそろ。C#本格的に勉強しなければ。。。 <br> マイクロソフトの虫遊び依頼さわってないっすC# <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/31 22:06<> <a href="../test/read.cgi/tech/1042375466/206" target="_blank">&gt;&gt;206</a>　以来でした。 <br>  <br> 今ふと思いついたのですが <br> timerHandler()に入った瞬間にスタックからcs,eip,eflagsを取り出しておいて <br> タスク構造体に入れておいて <br>  <br> あとからゆっくりと任意の場所でスタックに戻してあげてiretすれば <br> 便利かなあと思ったんですが、何か落とし穴があるのでしょうか。 <>
涼宮茜  </b>◆SDeOYNgiAU <b><>sage<>03/01/31 22:13<> 　　　　　＿,.'⌒) <br> 　　　, ´f二ｺヽ <br> 　 　 ! l !ﾉ ﾘ i l　　　 ／￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣ <br> 　　ノiﾊl.ﾟ ｰﾟﾉﾘ　　＜.　<a href="../test/read.cgi/tech/1042375466/207" target="_blank">&gt;&gt;207</a> それが一般的な実装です。 <br> 　　　 ⊂)允つ　　 　 ＼　同時に汎用レジスタもTCBへ保存するべきですね。 <br> 　 　 　 く/_|〉　　　　　　＼＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿ <br> 　　　 　 し'ﾉ <>
デフォルトの名無しさん<>sage<>03/01/31 22:27<> <a href="../test/read.cgi/tech/1042375466/208" target="_blank">&gt;&gt;208</a> <br> んで、新しくタスクを作るときはスタックに積んどいて iret でスタートさせると。 <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/31 22:32<> <a href="../test/read.cgi/tech/1042375466/208" target="_blank">&gt;&gt;208</a> 209 <br> アドバイスありがとうございます。 <br>  <br> やっと一般的な実装にたどり着いたということですか。 <br> 喜んでいいのかな・・・おそいけど。 <>
henoheno@OS板 </b>◆mXrBwDDzyw <b><>sage<>03/01/31 23:09<> <a href="../test/read.cgi/tech/1042375466/200" target="_blank">&gt;&gt;200</a>, <a href="../test/read.cgi/tech/1042375466/205" target="_blank">&gt;&gt;205</a> <br>  <br> PukiWikiのBugTrackプラグインをご紹介。 <br> ttp://pukiwiki.sourceforge.jp/dev/index.php?BugTrack <br>  <br> ただし、これはこれで(PukiWikiの)メンテナが要ります。 <br> PHPが直せないならお勧めできない。 <br>  <>
デフォルトの名無しさん<>sage<>03/01/31 23:13<> <a href="../test/read.cgi/tech/1042375466/210" target="_blank">&gt;&gt;210</a> <br> ついでに、スレッドの開始アドレスを関数の先頭にしておいて、iretの戻りアドレスとして積んだその関数アドレスの <br> 下にスレッド終了関数のアドレスと、終了関数への引数を積んでおくと、スレッドの関数からリターンしたときに <br> スレッドが終了するように出来る。 <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/01/31 23:22<> &gt;&gt;henohenoさん <br> おー。イメージ的にはそんなかんじですね。 <br> ただPHPを勉強する暇はないので厳しいかもです。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/212" target="_blank">&gt;&gt;212</a>さん <br> なるほど。 <br> 話が変わりますが <br> eipは直接自分でとることは出来ないんですよね。 <br> 割り込みとかがトリガでないと取れないのでしょうか。 <>
デフォルトの名無しさん<>sage<>03/01/31 23:44<> <a href="../test/read.cgi/tech/1042375466/205" target="_blank">&gt;&gt;205</a> <br> .tgzはちょっと……（ファイル形式じゃなくて拡張子） <br> 何で.tar.gzって冗長なことになっているのかご存知？ <>
デフォルトの名無しさん<>sage<>03/01/31 23:48<> <a href="../test/read.cgi/tech/1042375466/213" target="_blank">&gt;&gt;213</a> <br>  <br> GetEIP: <br> 　　　　mov　　dword [esp], eax <br> 　　　　ret <br>  <>
215<>sage<>03/01/31 23:54<> よく考えたら eip 取りたいポイントにラベル置いとけばいいだけだったｳﾄｩ <br>  <>
214<>sage<>03/01/31 23:55<> 必死で対処しておられるのは伝わっては来ますが、 <br> 今のファイル名の付け方は独自過ぎます。 <br> 多分DOS経験が長くてUNIX文化をあまりご存知ないのかと。 <br>  <br> うるさいやつと思われるかもしれませんが、 <br> ちょっと知ってる人が見たらすぐ分かるという意味で、 <br> 標準的な名前の付け方に従った方が良いです。 <br>  <br> まずtgzとzipと両方で4つは冗長すぎます。 <br> いちいちこんなことしていたら収拾付かなくなります。 <br>  <br> mona_beta0_02b_img.tgzというファイル名も悪いですが厨房くさいです。 <br> ピリオドを1個にして拡張子tgzにするというのは <br> DOSの慣習に従ったと思われますが、 <br> そもそも8.3形式じゃないので意味ないです。 <br> 区切りもピリオドもアンダーバーになっているので見難いです。 <br> imgとかsrcとかの略語は8.3形式制限の産物なので無意味です。 <br> 区切りはハイフン、ピリオドは臆せず何個も付けた方が良いです。 <br>  <br> あとβというのはリリース（完成）直前のものを指すのであって、 <br> 今の段階ではαでさえないので変です。 <br> 普通、αとかβとかは1.00αとか完成が視野に入ってから付けます。 <br> それ以前に0.02というナンバリングが初期段階を表しているので <br> αとかβとか謙遜する必要もないです。 <br> あと最近はバージョンニングは3つに区切るのが主流です。 <br>  <br> UNIX系ではソース提供が普通なので、 <br> ソースにはいちいちsrcなどと付けず、バイナリを補足します。 <br> ですから次のような2つのファイルを提供することをお勧めします。 <br>  <br> mona-0.0.2-image.zip <br> mona-0.0.2.tar.gz <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/02/01 00:01<> <a href="../test/read.cgi/tech/1042375466/214" target="_blank">&gt;&gt;214</a> <br> &gt;何で.tar.gzって冗長なことになっているのかご存知？ <br>  <br> 私も、最近までUNIXのことをほとんど何も知らなかったので、 <br> 「誰がこんな意味不明の"拡張子"の付け方を広めたんだろう。全く、、、。」 <br>  <br> と思っていたのですが、今ではなんと賢い付け方を考えたのだろう、という <br> 風に考え方が変わりました。(^_^;) <br>  <br> ようするに、aaaa と言うファイルを bbbb という形式に変換した時、に、 <br> aaaa.bbbb <br> というファイルができるという規則を何度も連続して適用しているんですね。 <br>  <br> これを繰り返して、aaaa.bbbb というファイルを、さらに cccc という形式 <br> に変換すると、 <br> aaaa.bbbb.cccc <br> に変わると。 <br>  <br> だから、aaaa というファイルを、tar でまとめた後、gz 形式に変換すると、 <br> aaaa.tar.gz <br> に変わる。 <br>  <br> 逆変換（展開など）をすると、後ろの方から拡張子が消えていくと。 <br>  <br>  <br> だから、tgz という拡張子にするより、実はtar.gzの方が凄く合理的だと <br> いう、、、。 <>
henoheno@OS板 </b>◆mXrBwDDzyw <b><>sage<>03/02/01 00:21<> <a href="../test/read.cgi/tech/1042375466/214" target="_blank">&gt;&gt;214</a> <br> どのような意味でしょうか？ <br>  <br> <a href="../test/read.cgi/tech/1042375466/205" target="_blank">&gt;&gt;205</a> <br> gzipの圧縮オプションは最大にして下さい。 <br>  <br> 以下は以前書いたもの。 <br> ----------------------------- <br> $ cat targz.sh <br> #!/bin/sh <br> # <br>  <br> echo "tar cf - \"$1\" | gzip -9 &gt; \"$1.tar.gz\"" <br> tar cf - "$1" | gzip -9 &gt; "$1.tar.gz" <br>  <br> ----------------------------- <br> $ cat release.sh <br> #!/bin/sh <br> # Release <br>  <br> if [ -z "$1" ] <br>   then rel=0_9_4 <br>   else rel="$1" <br> fi <br>  <br> mod=cvsknit <br> CVSROOT=':pserver:anonymous@cvs.sourceforge.net:/cvsroot/cvsknit' <br>  <br> cvs -z3 -d "$CVSROOT" export -r "CK_REL_${rel}" "$mod" <br> tar cf - "$mod" | gzip -9 &gt; "${mod}_${rel}.tar.gz" <br>  <br>  <>
デフォルトの名無しさん<>sage<>03/02/01 00:32<> <a href="../test/read.cgi/tech/1042375466/219" target="_blank">&gt;&gt;219</a> <br> これMakefileで何とかなりませんかね。distターゲットとか作って <br> make distとかでできると楽だと思うのですが、、、 <br> # 俺には期待しないでね &heart; <>
デフォルトの名無しさん<>sage<>03/02/01 00:32<> <a href="../test/read.cgi/tech/1042375466/219" target="_blank">&gt;&gt;219</a> <br> &gt; どのような意味でしょうか？ <br> 218でLightCone氏が詳しく説明しておられます。 <>
超先生＠スクリプト屋  </b>◆leaf/RYZgY <b><>sage<>03/02/01 00:33<> ＜後ろ頭＞y-~~　ピリオドはファイル名の単なる区切り。 <br> そもそもfile system上の"拡張子"という概念はFAT固有のものだしね。 <>
デフォルトの名無しさん<>sage<>03/02/01 01:00<> ま、解凍してでてきた物がすばらしけりゃ <br> どーでもいいんだけどね。 <>
デフォルトの名無しさん<>sage<>03/02/01 01:03<> <a href="../test/read.cgi/tech/1042375466/220" target="_blank">&gt;&gt;220</a> <br> autotoolなら自動でルール作ってくれるけど <>
224<>sage<>03/02/01 01:03<> ×ルール <br> ○ターゲット <>
デフォルトの名無しさん<>sage<>03/02/01 02:39<> 最近のディストロならunzipくらい標準ではいってるだろうから <br> tar+gzipじゃなくてzip一本でいいと思われ <>
デフォルトの名無しさん<>sage<>03/02/01 09:07<> <a href="../test/read.cgi/tech/1042375466/224" target="_blank">&gt;&gt;224</a> <br> ひげぽんがcygwin使っているので、configureは時間がかかる気がする。 <br> メリットもあまり無いと思うし、、、 <br> # 楽なんだけどね (^^; <>
デフォルトの名無しさん<>sage<>03/02/01 10:52<> <a href="../test/read.cgi/tech/1042375466/226" target="_blank">&gt;&gt;226</a> <br> 圧縮率が全然違う <>
デフォルトの名無しさん<>sage<>03/02/01 11:16<> 配布厨、圧縮厨uzeeeeeeeeeeeeeeeeeeeeeeeeeeep <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/01 13:14<> <a href="../test/read.cgi/tech/1042375466/217" target="_blank">&gt;&gt;217</a> 219 <br> アドバイスありがとうございます。 <br>  <br> MakeFiel <br>  <br> dist : <br> cd ../bin; zip  -9 ../../mona-$(VERSION)-image.zip  mona.img <br> cd ../../; tar cf - mona_v1.0 | gzip -9 &gt; "mona-$(VERSION).tar.gz" <br>  <br> こんな感じでよいでしょうか。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/01 13:16<> Fiel⇒File <br>  <br> 皆様いろいろアドバイスありがとうございます。m(__)m <br> こういうご指摘は大変ありがたいです。 <br>  <br> 配布形式等で違和感・不親切感が感じられるのは <br> マイナスなので改善していきます。 <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/01 13:21<> tarの前にmake cleanしたほうがよさそうですね。 <br>  <br> 今週末は <br> &gt;207 <br> あたりの実装をしようかと思っています。 <>
デフォルトの名無しさん<>sage<>03/02/01 13:32<> <a href="../test/read.cgi/tech/1042375466/230" target="_blank">&gt;&gt;230</a> <br> MakeFileではなくてMakefileが普通（大文字・小文字の使い方のこと） <>
デフォルトの名無しさん<>sage<>03/02/01 17:16<> ひげぽんは、本当にいいやつだ。 <br> 俺ならもうキレてるｗ <>
ひげぽそ<>sage<>03/02/01 17:43<> キレそうになりましたら、近所の人を数発殴ってから作業を再開していますので、 <br> 問題ないです。はい。 <>
デフォルトの名無しさん<><>03/02/01 17:53<> &gt;&gt;ひげぽんさん <br> お疲れ様でした。 <br> さっそくダウンロードさせていただきました。 <br> 今後とも応援していますので頑張ってください。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/235" target="_blank">&gt;&gt;235</a> <br> こういう時のためのトリップですね。 <>
デフォルトの名無しさん<>sage<>03/02/01 18:02<> 度々要望ですみませんが…… <br>  <br> トップページに <br> &gt; Monaダウンロード : Mona Develop Beta 0.02b　がダウンロードできるようになりました。 <br> とアナウンスがありますが、 <br> そこからダウンロードページへリンクした方が親切だと思います。 <>
デフォルトの名無しさん<><>03/02/01 19:06<> <a href="../test/read.cgi/tech/1042375466/237" target="_blank">&gt;&gt;237</a> <br> MonaBBSに書こうゼ <>
デフォルトの名無しさん<>sage<>03/02/01 19:20<> 御意 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/01 20:59<> ハンドラ内でのレジスタセーブマクロを作りました。 <br> #define _saveRegisters(process) {　　　 \ <br> 　　　　　　　　　　　 \ <br> 　asm volatile("movl %%ebx,     %0     \n" \ <br> 　　　　 "movl 4(%%ebp) , %%ebx  \n" \ <br> 　　　　 "movl %%ebx    , %1     \n" \ <br> 　　　　 "movl 8(%%ebp) , %%ebx  \n" \ <br> 　　　　 "movl %%ebx    ,  %2    \n" \ <br> 　　　　 "movl 12(%%ebp), %%ebx  \n" \ <br> 　　　　 "movl %%ebx    ,  %3    \n" \ <br> 　　　　 "movl %%eax    ,  %4    \n" \ <br> 　　　　 "movl %%ecx    ,  %5    \n" \ <br> 　　　　 "movl %%edx    ,  %6    \n" \ <br> 　　　　 "movl %%esi    ,  %7    \n" \ <br> 　　　　 "movl %%edi    ,  %8    \n" \ <br> 　　　　 : "=m"(process-&gt;ebx)　　 \ <br> 　　　　 , "=m"(process-&gt;eip)　　 \ <br> 　　　　 , "=m"(process-&gt;cs)　　 \ <br> 　　　　 , "=m"(process-&gt;eflags)　 \ <br> 　　　　 , "=m"(process-&gt;eax)　　 \ <br> 　　　　 , "=m"(process-&gt;ecx)　　 \ <br> 　　　　 , "=m"(process-&gt;edx)　　 \ <br> 　　　　 , "=m"(process-&gt;esi)　　 \ <br> 　　　　 , "=m"(process-&gt;edi)　　 \ <br> 　　　　 ); 　　　　　　 \ <br> }　　　　　　　　　　　 \ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/01 21:01<> <a href="../test/read.cgi/tech/1042375466/236" target="_blank">&gt;&gt;236</a> <br> &gt;お疲れ様でした。 <br> &gt;さっそくダウンロードさせていただきました。 <br> &gt;今後とも応援していますので頑張ってください。 <br>  <br> ありがとうございます。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/237" target="_blank">&gt;&gt;237</a> <br> &gt;そこからダウンロードページへリンクした方が親切だと思います。 <br>  <br> 近いうちに改善できるよう要望を出しておきます。 <br> ご指摘ありがとうございます。 <br>  <br>  <>
デフォルトの名無しさん<>sage<>03/02/02 03:45<> <a href="../test/read.cgi/tech/1042375466/240" target="_blank">&gt;&gt;240</a> <br>  <br> process がグローバル変数かスタティック変数へのポインタでなければ、 <br> gcc が process の値を計算するときにレジスタを使って内容を壊してしまわないか心配。 <br> というか、多分使う。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/02 15:25<> <a href="../test/read.cgi/tech/1042375466/242" target="_blank">&gt;&gt;242</a>さん <br>  <br> 気づきませんでした。ありがとうございます。 <br> ProcessManagerクラスのpublic static変数としました。 <>
デフォルトの名無しさん<>sage<>03/02/02 16:31<> <a href="../test/read.cgi/tech/1042375466/243" target="_blank">&gt;&gt;243</a> <br> 一応 gcc -S でアセンブラソース吐き出させて、レジスタ壊してないか確認した方が吉 <br>  <>
涼宮茜  </b>◆AGE/HuBkMM <b><>sage<>03/02/02 16:39<> 　　　　　＿,.'⌒) <br> 　　　, ´f二ｺヽ <br> 　 　 ! l !ﾉ ﾘ i l　　　 ／￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣ <br> 　　ノiﾊl.ﾟ ｰﾟﾉﾘ　　＜.　<a href="../test/read.cgi/tech/1042375466/243" target="_blank">&gt;&gt;243</a> pushaでスタックへ吐き出してから <br> 　　　 ⊂)允つ　　 　 ＼　*(ebp+n)で取得するのが安全・確実です。 <br> 　 　 　 く/_|〉　　　　　　＼＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿ <br> 　　　 　 し'ﾉ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/02 21:39<> #define _switchProcess(currentProcess, nextProcess) <br>  <br> &nbsp; /* no switch */ <br> &nbsp; if (currentProcess == nextProcess) iret(); <br>  <br> &nbsp; /* switch to next */ <br> &nbsp; asm volatile( <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  "movl  %2, %%ebx&nbsp; \n" <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  "movl  %3, %%ecx&nbsp; \n" <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  "movl  %4, %%edx&nbsp; \n" <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  "movl  %5, %%edi&nbsp; \n" <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  "movl  %6, %%esi&nbsp; \n" <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  "movl  %7, %%esp&nbsp; \n" <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  "movl  %8, %%ebp&nbsp; \n" <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  "pushl %9&nbsp;&nbsp;&nbsp;  \n" <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  "pushl %10&nbsp;&nbsp;&nbsp; \n" <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  "pushl %11&nbsp;&nbsp;&nbsp; \n" <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  "movl  %1, %%eax&nbsp; \n" <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  "iretl&nbsp;&nbsp;&nbsp;&nbsp;  \n" <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  : "=m"(currentProcess-&gt;esp) <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  : "m"(nextProcess-&gt;eax) <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  , "m"(nextProcess-&gt;ebx) <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  , "m"(nextProcess-&gt;ecx) <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  , "m"(nextProcess-&gt;edx) <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  , "m"(nextProcess-&gt;edi) <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  , "m"(nextProcess-&gt;esi) <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  , "m"(nextProcess-&gt;esp) <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  , "m"(nextProcess-&gt;ebp) <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  , "m"(nextProcess-&gt;eflags) <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  , "m"(nextProcess-&gt;cs) <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  , "m"(nextProcess-&gt;eip) <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ); <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/02 21:42<> プロセススイッチの際に <br> プロセス構造体にレジスタをセーブするように変更しました。 <br>  <br> 何とか動いております。 <br> ふぅっと。ひといき。 <>
henoheno@おさらい </b>◆mXrBwDDzyw <b><>sage<>03/02/02 23:05<> 　ソースを公開する際は、"cvs co" のかわりに "cvs export" コマンドで <br> ソースを取り出したものをお使い下さい。(具体例は <a href="../test/read.cgi/tech/1042375466/219" target="_blank">&gt;&gt;219</a>)  <br> 　exportコマンドを使えば 'CVS' というスペシャルディレクトリとファイルを <br> 含まない、ほぼ純粋なソースを取り出す事ができます。 <br>  <br> 　下手に "cvs co" を使うとそのユーザーの作業環境が漏れたり、 <br> CVSサーバーの所在が漏れたり、そのソースに他の人が作業した <br> 際に扱い辛くなったり、そのソースを別のリポジトリに追加しようと <br> した人が泣く事に繋がります。 <br>  <br> 　なお、最新のファイルをexportする時は "cvs export -D tomorrow " <br> でどうぞ。 <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/02 23:14<> <a href="../test/read.cgi/tech/1042375466/248" target="_blank">&gt;&gt;248</a> <br> henohenoさん <br> おさらいありがとうございます。 <br> cvs export次回から使わせていただきます。m(__)m <br>  <br> ３つのタスクを実行してみました。 <br> ttp://mona.sourceforge.jp/higepon/multi.PNG <br>  <br> アドバイスを下さった方ありがとうございます。m(__)m <>
デフォルトの名無しさん<><>03/02/03 21:41<> コンテキストの操作にはインラインアセンブラを使わない方が賢明だと思われ。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/03 21:46<> <a href="../test/read.cgi/tech/1042375466/250" target="_blank">&gt;&gt;250</a> <br> &gt;コンテキストの操作にはインラインアセンブラを使わない方が賢明だと思われ。 <br>  <br> おっしゃることは良く分かります。 <br> インラインにするといろいろ考慮しなければいけないことが <br> 多いです・・・ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/03 21:51<> yossyさんの努力でMonaBBSの統合が行われました。 <br> ttp://monaos.hp.infoseek.co.jp/bbs.html <br>  <br> 更に書き込みやすくなりましたので皆さん <br> どうぞ奮って書き込みください（笑） <br>  <br> あとこちらもよろしくお願いいたします。m(__)m <br> ttps://sourceforge.jp/projects/mona/files/ <>
henoheno@OS板@mac Exp<>sage<>03/02/03 22:18<> http://mona.sourceforge.jp/ に、 <br> http://sourceforge.jp/projects/mona <br> へ移動するためのテキストリンクを所望します。（もし無ければ・・・） <br>  <br> ＃MonaBBSに書いたら混んでいると言われたのでこちらで（ ;´∀｀） <br>  <>
henoheno@OS板 </b>◆mXrBwDDzyw <b><>sage<>03/02/03 22:19<> あら、しまったのでトリップ変えなきゃ・・・ <br> http://minix-up.sourceforge.jp/ の末尾に書くことにします（ ;´∀｀） <br>  <>
henoheno@OS板 </b>◆g2j80BX5do <b><>sage<>03/02/03 22:20<> こちらで。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/03 22:24<> <a href="../test/read.cgi/tech/1042375466/253" target="_blank">&gt;&gt;253</a> henohenoさん <br> http://mona.sourceforge.jp/ <br> の下のほうにMonaPJというラベルでリンクがあります。 <br>  <br> もっと便利な場所がいいですかねぇ。 <>
デフォルトの名無しさん<>sage<>03/02/03 22:47<> <a href="../test/read.cgi/tech/1042375466/256" target="_blank">&gt;&gt;256</a> <br> そんなの普通見つけられないと思いますが…… <br> エロサイトの入り口並み（ｗ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/03 22:56<> <a href="../test/read.cgi/tech/1042375466/257" target="_blank">&gt;&gt;257</a> <br> &gt;そんなの普通見つけられないと思いますが…… <br> &gt;エロサイトの入り口並み（ｗ <br>  <br> そうですよねｗ <br> 実はあそこのリンクは結構使ってます。 <br> mona.sourceforge.jpのほうが覚えやすいので・・・ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/03 23:21<> printf(const char *str, ...) { <br>  <br> _sys_printf(str, ...) <br> } <br>  <br> というようなことをやりたい場合(実際にやるのは違うことですが) <br> printfが受け取った、引数はどうやって_sys_printf()に渡せばいいんだろう。 <br>  <br> C言語入門からやり直そうかな・・・ <>
デフォルトの名無しさん<>sage<>03/02/04 00:16<> スタック走査すればいいんじゃ。。 <>
デフォルトの名無しさん<>sage<>03/02/04 00:27<> そういう意味ではないと思うけど <>
デフォルトの名無しさん<>sage<>03/02/04 00:31<> <a href="../test/read.cgi/tech/1042375466/259" target="_blank">&gt;&gt;259</a> <br> 標準ライブラリが使える場合は va_start, va_arg, va_end 等を使うけど、 <br> mona では使わないので、結局 <a href="../test/read.cgi/tech/1042375466/260" target="_blank">&gt;&gt;260</a> が言うようにスタックを操作するマクロを自分で書くしかないでつね。 <br> というか、それ _sys_printf() でやってるじゃん。 <>
デフォルトの名無しさん<>sage<>03/02/04 00:53<> 変換仕様も作らないといけないのか。 <br> 始めは%s, %dくらいかな。ひげぽんがんばれ。 <>
デフォルトの名無しさん<>sage<>03/02/04 17:03<> Windows NT互換を目指すReactOS 0.1.0リリース <br> http://slashdot.jp/developers/03/02/03/221257.shtml?topic=1 <br> オープンソースでWindows NT 互換OSを作るReactOSプロジェクトが、 <br> ReactOS 0.1.0をリリースした。 <br> アプリケーションおよびドライバーにむけてNTバイナリ互換性 を確保しようというもの。 <br> 現在、CD-ROMブートが可能で、GUIア プリケーションも初歩的ながら動いている。 <br> GUI周りはWINEの助けを借りているそう なので、案外早くに大化けするかもしれない。" <br> ダウンロードのページからは実験用にBochs 2.0で起動できるイメージとBochsが  <br> セットになったパッケージをゲットできる。 <br>  <br>  <br> ひげぽんもｶﾞﾝﾊﾞﾚ！ <>
178<>sage<>03/02/04 19:18<> gcc,g++なら&lt;stdarg.h&gt;はマクロとビルトイン関数だけだから、 <br> インクルードするだけで、ランタイムライブラリ無しでも使えた <br> と思うよ。 <>
デフォルトの名無しさん<>sage<>03/02/05 11:08<> sprintfに対するvsprintfのようなものを用意して、 <br> 前者は後者を呼び出すだけにして、 <br> 実装は後者で行うようにすると簡単。 <>
デフォルトの名無しさん<><>03/02/05 16:57<> <a href="../test/read.cgi/tech/1042375466/264" target="_blank">&gt;&gt;264</a> <br> いわゆるLindowsみたいな感じ？ <>
デフォルトの名無しさん<>sage<>03/02/05 17:04<> 成果をマージしてるってだけだろ、 <br> LindowsはOSとしてはDebianベースのLinuxで、WINEが動いてるだけ。 <>
デフォルトの名無しさん<><>03/02/05 19:07<> 新しいＯＳを作ろうとすると、 <br> やっぱり、ＰＣ－ＵＮＩＸ系のＯＳがベースになりますねぇ？ <>
FreeDOS教徒<>osage<>03/02/05 20:22<> <a href="../test/read.cgi/tech/1042375466/269" target="_blank">&gt;&gt;269</a> <br> そうとは限んないですね。 <br> PC-UNIXの空気が合わなくてOSを作る人も <br> 当然いるはずですから。 <br>  <br> むしろ、新規にOSをつくる理由はだいたい、 <br> 既存のOSにない機能性を求めるところからきてるのでは？ <>
デフォルトの名無しさん<><>03/02/05 20:34<> Windowsの成り立ち <br> CP/M-86 <br>   ↓パクリ <br> 86DOS <br>   ↓開発元シアトルコンピュータを買収して、MSが発売 <br> MS-DOS <br>   ↓Macに対抗し、GUIベースAPIを追加 <br> Windows <>
デフォルトの名無しさん<>sage<>03/02/05 21:26<> 実行時のどのタイミングでもハードウェアのつけ外しができるようなOSｷﾎﾞﾝ。 <br> まぁ、最低一つのマザーボード、一つのCPU、一つのメモリは必要だろうけど。 <>
デフォルトの名無しさん<><>03/02/05 21:58<> <a href="../test/read.cgi/tech/1042375466/272" target="_blank">&gt;&gt;272</a> <br> そんな貴方は、ギガバイト製のマザーで自作しましょう！ <br> USB接続のFDD,HDD,CD-ROMからＯＳを起動できます。 <br> PCI接続でない限り、ホットプラグが有効です。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/05 22:20<> <a href="../test/read.cgi/tech/1042375466/262" target="_blank">&gt;&gt;262</a> <br> <a href="../test/read.cgi/tech/1042375466/263" target="_blank">&gt;&gt;263</a> <br> ありがとうございます。 <br> 実は <br> (1)VirtualConsole* console = new SystemConsole(); <br> (2)VirtualCosole* console = new LogConsole(); <br>  <br> console-&gt;printf("hoge"); <br>  <br> 出力先はconsoleの中身次第みたいな作戦を目論んでいました。 <br> SystemConsole#printfの中身は_sys_printfに任せようと思ったので <br> 例の質問をした次第です。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/264" target="_blank">&gt;&gt;264</a> <br> ご紹介ありがとうございます。 <br> ReacOS試してみました。すごいですねぇ。 <br> ソースを見てみたら、結構綺麗でした。 <br> 日付を見ると98年とかあるのでリリースまでに結構かかってるのですね。 <br> Monaはあそこまで動くまでどれくらいかかるんだろう・・・ <br>  <br>  <br>  <br>  <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/05 22:42<> <a href="../test/read.cgi/tech/1042375466/266" target="_blank">&gt;&gt;266</a> <br> &gt;sprintfに対するvsprintfのようなものを用意して、 <br> &gt;前者は後者を呼び出すだけにして、 <br> &gt;実装は後者で行うようにすると簡単 <br>  <br> なるほど。ありがとうございます。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/270" target="_blank">&gt;&gt;270</a> <br> &gt;むしろ、新規にOSをつくる理由はだいたい、 <br> &gt;既存のOSにない機能性を求めるところからきてるのでは？ <br>  <br> ですね。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/06 23:45<> また勉強中ためしばらく <br> ソースの更新はないかもしれません。 <br>  <br> やっぱり継承は微妙に使えないかも。⇒今の環境では。 <>
デフォルトの名無しさん<>sage<>03/02/07 07:58<> EOTAはGCCの動作ができたようです。 <br>  <br> http://home.interlink.or.jp/~s-nakani/doc/application.html#gcc <br> http://s-nakani.hp.infoseek.co.jp/eota/gcc-eota.html <>
デフォルトの名無しさん<><>03/02/07 20:07<> OSASKもGCC 3.2からcc1やcpp0を切り出して移植できたらしい。 <br> ttp://www.imasy.org/~kawai/osask/index.html <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/07 23:15<> <a href="../test/read.cgi/tech/1042375466/276" target="_blank">&gt;&gt;276</a> <br> &gt;やっぱり継承は微妙に使えないかも。⇒今の環境では <br>  <br> SystemConsole <br> ttp://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/mona_v1.0/src/inclue/SystemConsole.h?rev=1.2&content-type=text/vnd.viewcvs-markup <br> ttp://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/mona_v1.0/src/SystemConsole.cpp?rev=1.2&content-type=text/vnd.viewcvs-markup <br>  <br> VirtualConsole <br> ttp://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/mona_v1.0/src/include/VirtualConsole.h?rev=1.1&content-type=text/vnd.viewcvs-markup <br>  <br> 呼び出し <br> monaKernel.cpp <br> http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/mona_v1.0/src/monaKernel.cpp?rev=1.42&content-type=text/vnd.viewcvs-markup <br>  <br> bochsででるエラー <br> 00000648489i[CPU  ] write_virtual_checks(): no write access to seg <br> 00000648489p[CPU  ] &gt;&gt;PANIC&lt;&lt; exception(): 3rd (13) exception with no resolution <br>  <br> 継承をはずすとこのエラーはでません。 <br> 仮想関数テーブル？ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/08 20:15<> <a href="../test/read.cgi/tech/1042375466/279" target="_blank">&gt;&gt;279</a> <br> &gt;00000648489i[CPU ] write_virtual_checks(): no write access to seg <br> &gt;00000648489p[CPU ] &gt;&gt;PANIC&lt;&lt; exception(): 3rd (13) exception with no resolution <br>  <br> このエラーですがカーネルサイズによるものっぽい。 <br> うーんどこかでメモリをこわしてるっぽい。 <br>  <br> デバッグか(涙） <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/08 21:13<> &nbsp;&nbsp;switch ( seg-&gt;cache.type ) { <br> &nbsp;&nbsp;&nbsp;case 0: case 1:&nbsp; // read only <br> &nbsp;&nbsp;&nbsp;case 4: case 5:&nbsp; // read only, expand down <br> &nbsp;&nbsp;&nbsp;case 8: case 9:&nbsp; // execute only <br> &nbsp;&nbsp;&nbsp;case 10: case 11: // execute/read <br> &nbsp;&nbsp;&nbsp;case 12: case 13: // execute only, conforming <br> &nbsp;&nbsp;&nbsp;case 14: case 15: // execute/read-only, conforming <br> &nbsp;&nbsp;&nbsp;&nbsp;BX_INFO(("write_virtual_checks(): no write access to seg")); <br> &nbsp;&nbsp;&nbsp;&nbsp;exception(int_number(seg), 0, 0); <br> &nbsp;&nbsp;&nbsp;&nbsp;return; <br>  <br> このへんかな。 <>
デフォルトの名無しさん<><>03/02/08 21:31<> 継承するときに自己書き換えしてるんじゃない？ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/08 21:48<> <a href="../test/read.cgi/tech/1042375466/282" target="_blank">&gt;&gt;282</a> <br> それも疑ったので、SystemConsoleを使う部分を <br> コメントアウトして、リンクすらやめてみました。 <br> するとエラーは起きませんでした。 <br>  <br> ただ、適当な_sys_printfのコードを大量に埋め込んでカーネルのサイズを <br> 大きくすると同じエラーが出るのでメモリを壊してる予感大です。 <br>  <br> 参考Monaメモリマッピング(うそが含まれるかも) <br> ttp://mona.sourceforge.jp/higepon/mona_mmap.png <>
デフォルトの名無しさん<>sage<>03/02/08 22:12<> 203です。 <br> FreeDOS教徒、ひげぽんさん <br> 趣味でやってるだけだから、JavaもC#もレベルはへたれですよｗ <br>  <br> 本題ですが、私も勉強中なので間違ってる可能性大ですが．．． <br> ひげぽんさんも、仮想関数テーブルが怪しいと思われてるみたいなのですが、 <br> 私も、Monaのデータセグメント領域外に、仮想関数テーブルがあるのではないかと思います。 <br> gccがどこに仮想関数テーブルを作るかがわかればはっきりするのですけどね．．． <br> また知っておられたら恐縮ですが．．． <br> http://www.microsoft.com/japan/msdn/vs_previous/visualc/techmat/feature/jangrayhood/ <>
デフォルトの名無しさん<>sage<>03/02/08 22:39<> &gt;&gt; 284 <br> おそらく仮想関数テーブルが原因ではないと書いてあるよ。 <>
284<>sage<>03/02/08 23:25<> <a href="../test/read.cgi/tech/1042375466/285" target="_blank">&gt;&gt;285</a>さん <br> 281の内容は、エラーで発生した例外割り込みを処理してる部分じゃなくて、 <br> この部分そのものがエラーの原因？ <br>  <br> いいかげんなこと言ってしまいすみません。 <br> もう少し勉強して物言います(泣 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/08 23:57<> <a href="../test/read.cgi/tech/1042375466/284" target="_blank">&gt;&gt;284</a> <br> こんばんは。アドバイスありがとうございます。 <br> ご紹介いただいたURLは、以前一度だけ見たことがありましたが <br> もう一度みなおしてみます。 <br>  <br> 上のほうに書いたbochsエラーの原因が半分分かりました。 <br>  <br> テスト用プロセス3のスタックが原因でした。 <br> 今は適当に何も考えずespを設定しているのですが <br> これがまずかったようです。(当たり前か) <br>  <br> VirtualConsole問題は相変わらず解決していません。 <>
デフォルトの名無しさん<><>03/02/09 07:45<> 難しすぎて面白いネタの部分が分からないよﾏﾏﾝ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/10 00:41<> VirtualConsole問題は解決しました。 <br>  <br> プライベートでないstaticオブジェクトの初期化が問題でした。 <br>  <br> 解決の糸口を下さったniqkさん、超先生、Yas2さんありがとうございました。 <br> m(__)m <br>  <br> Monaでは仮想関数も使えることが分かりました。 <br> これからはガシガシ使います。 <>
デフォルトの名無しさん<><>03/02/10 15:32<> age <>
デフォルトの名無しさん<>sage<>03/02/10 20:46<> 最終的にはどうしたいの？そこまでいきたいの？ <>
ひげぽん </b>◆Ngzcp/NZpA <b><><>03/02/11 01:31<> bochs,Virtual PC,実機でフロッピィドライバの実験をしているのですが <br>  <br> bochsのFDCにcalibrateコマンドを送っても処理後にinterruptが発生しない。 <br> bochsのFDCにmotorリセットコマンド送っても処理後にinterruptが発生しない。 <br>  <br> という現象が見られます。 <br> ただし目的のコマンドに合った動作は得られている。 <br>  <br> これは、 <br> 「FDCによっては処理後にinterruptを発生させないものもある。」 <br> 「bochsは、FDC部のエミュレーションに未実装部分がある」 <br> どちらなんだろう。となやんでいます。 <>
デフォルトの名無しさん<>sage<>03/02/11 01:40<> <a href="../test/read.cgi/tech/1042375466/292" target="_blank">&gt;&gt;292</a> <br> 実FDCもチップ毎に挙動が異なるらしい <br> intelのチップセットでも妙な物もある <br> 仕様通りに動くとは期待しないほうがよさそう <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/11 01:53<> <a href="../test/read.cgi/tech/1042375466/293" target="_blank">&gt;&gt;293</a> <br>  <br> 処理終了のにinterruptが来てなくても <br> MSRの状態を見て処理終了を判断、という仕様でいいのかなあ。 <br> bochsで動かないのはまずいなあ。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/11 01:54<> <a href="../test/read.cgi/tech/1042375466/293" target="_blank">&gt;&gt;293</a> <br>  <br> すいません293へのコメントが抜けてました。 <br> もしよろしければ作成の体験談・妥協点を教えていただけたら幸いです。 <>
デフォルトの名無しさん<>sage<>03/02/11 02:37<> <a href="../test/read.cgi/tech/1042375466/295" target="_blank">&gt;&gt;295</a> <br> メモリ上に読み込む事のみが目的でしたから、 <br> 割り込みはマスクしてFDCのポーリングで逃げました。 <br> 並列動作などを考えると大変でしょうね。 <br>  <br>  <>
あきゅら<>sage<>03/02/11 22:59<> はじめてこのスレ読ましてもらいました。 <br> とっても敷居の高いスレでしたが自分も作ってみたいなぁと思いました。 <br> アセンブラの勉強から早速やってみたいと思います。 <br> 、、、、到底追いつけるとは思えないですが、、、 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/11 23:11<> <a href="../test/read.cgi/tech/1042375466/296" target="_blank">&gt;&gt;296</a> <br> ありがとうございます。 <br> なるほどやはりポーリングしてだめならタイムアウトですかね。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/297" target="_blank">&gt;&gt;297</a> <br> こんばんは。 <br> &gt;アセンブラの勉強から早速やってみたいと思います。 <br> &gt;、、、、到底追いつけるとは思えないですが、、、 <br>  <br> いえ全然すぐに追いつけると思います。 <br> 是非がんばってください。 <>
デフォルトの名無しさん<>sage<>03/02/11 23:14<> このスレに触発されてマシン語の勉強を始めてしまいましたｗ <br> ひげぽんさんOS制作がんばってください <>
謎の探偵<><>03/02/13 14:45<> このレス、いつも拝見させてもらってます。 <br> わたしも勉強中・・・・・。でも忙しくて進んでない罠が・・。 <br> ひげぽんさん、ﾌｧｲ㌧です。 <>
あきゅら<>sage<>03/02/13 21:16<> さっそくはじめての４８６を勉強中なのですが、質問です。 <br> firstboot.asmのファイル中で <br>  <br> TEMPSEGが9f00と宣言されているのが <br> その少し下のほうで <br> ES:DI 9fe0:0000となっていて、 <br> どこで換わったのか分りません。。 <br>  <br> ひょっとしてすごいダメダメな質問？？ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/13 21:50<> <a href="../test/read.cgi/tech/1042375466/301" target="_blank">&gt;&gt;301</a> <br> 現在最新版のfirstboot.asmでは <br> http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/mona_v1.0/src/firstboot.asm?rev=1.8&content-type=text/vnd.viewcvs-markup <br> %define TEMPSEG 0x9f00 <br>  <br> xor     ax,ax <br>         mov     ds,ax <br>         mov     si,0x7c00       ; src = 0000:7C00 (DS:SI) <br>         mov     ax,TEMPSEG <br>         mov     es,ax <br>         xor     di,di           ; dst = 9FE0:0000 (ES:DI) <br>         mov     cx,0x0200 <br>  <br> となっています、コメントが間違っていますが <br> 一応整合性は取れていると思います。 <br>  <br> すいません回答になってますでしょうか？ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/13 21:52<> <a href="../test/read.cgi/tech/1042375466/299" target="_blank">&gt;&gt;299</a> <br> <a href="../test/read.cgi/tech/1042375466/300" target="_blank">&gt;&gt;300</a> <br> ありがとうございます。 <br> 私も最近忙しくてくじけそうですががんばります。m(__)m <br>  <br> FDCドライバをゆっくりと作成中です。 <>
あきゅら<>sage<>03/02/13 22:03<> あ、単なる間違いですか。 <br> なんか特別な仕組みがあるのかと。。 <br> 特にRAWRITEがどうのとかの所とか。 <br>  <br> interfaceの７月号が売ってないですぅ。。 <br> 秋葉でも神保町でも新宿でも。。 <br> どっかに売ってないでしょうか？ <>
デフォルトの名無しさん<>sage<>03/02/13 22:52<> またpart2からやりなおしですか。はぁ。 <>
FreeDOS教徒<>osage<>03/02/13 23:12<> <a href="../test/read.cgi/tech/1042375466/304" target="_blank">&gt;&gt;304</a> <br> 神保町にないなら見つからないと思われ。 <br> 出版元に問い合わせたほうが早いんじゃない？ <>
あきゅら<>sage<>03/02/13 23:26<> <a href="../test/read.cgi/tech/1042375466/305" target="_blank">&gt;&gt;305</a> <br> すいません、なるべくここでの質問は避けるようにしますんで。。。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/14 00:15<> 開発メモ <br> bochs2.0.2にて現象確認(Monaの環境だけの現象かもしれません) <br>  <br> (1)FDCのDORに対してリセットコマンド0x00を送ると <br> not ready , busy状態になりいくら待ってもその状態は変わらない。 <br>  <br> その後 not ready を無視して motor onコマンドを設定すると <br> ready ,not busy状態になる。 <br>  <br> (2)recalibrateコマンドを発行後(senseInterrupt前)に割り込みが <br> 発生しない。 <br> ただしコマンド発行前後でready -&gt; not ready -&gt; readyという状態遷移はする。 <>
デフォルトの名無しさん<>sage<>03/02/14 11:10<> <a href="../test/read.cgi/tech/1042375466/308" target="_blank">&gt;&gt;308</a> <br> Bochsがおかしいと思うんだったら、 <br> Lﾀﾝみたいに調べてみるべきじゃない？ <br> そんな難しいことはできませんとか言われそうだから、 <br> OS作るのも充分難しいと釘を刺しとく。 <>
デフォルトの名無しさん<>sage<>03/02/14 15:00<> おかしいと思う事があったら報告があるのは良いのではないかな。 <br> ついでに言えば、ココに書くだけで情報が集まるならそれは良い事だ。 <br> 情報収集の努力はしておいて損がない。 <br> しかし、自分で調べることが重要なのもまた事実。 <br>  <>
デフォルトの名無しさん<>sage<>03/02/14 15:16<> あまり覚えていないのですが <br> DORに0x00(NORMAL-&gt;RESET)を書き込んだ後、 <br> DORに0x04(RESET-&gt;NORMAL)を書くのでは？ <br> あと、この二つの間にwaitが必要だったかもしれません。 <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/14 23:21<> まずはおしらせ <br> 要望があったのでMonaBBSにOS勉強・資料部屋 というスレッドを作りました。 <br> http://monaos.hp.infoseek.co.jp/cgi-bin/2ch/test/read.cgi/developmona/1045154170/l50 <br>  <br> OS作成の資料を貼り付けたり、いろいろと活用してください。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/309" target="_blank">&gt;&gt;309</a> <br> &gt;Bochsがおかしいと思うんだったら、 <br> &gt;Lﾀﾝみたいに調べてみるべきじゃない？ <br> &gt;そんな難しいことはできませんとか言われそうだから、 <br>  <br> おっしゃることはもっともです。 <br> たまにBochsのソースをgrepしたりしてますが、 <br> 今回の件は全然調べていません。 <br>  <br> 調べていない理由としては実機、VPCで動いていること <br> Bochsでも、特に大きな障害になっていないことがあげられます。 <br>  <br> よっぽど障害にならない限り、とりあえずはFDCDriverの開発を <br> 優先しようかと思います。(すこしでもMonaの開発に時間をかけたいため。） <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/14 23:47<> <a href="../test/read.cgi/tech/1042375466/310" target="_blank">&gt;&gt;310</a> <br> &gt;おかしいと思う事があったら報告があるのは良いのではないかな。 <br> &gt;ついでに言えば、ココに書くだけで情報が集まるならそれは良い事だ。 <br> &gt;情報収集の努力はしておいて損がない。 <br>  <br> フォローありがとうございます。 <br> 意図としては、単純に開発メモ(忘れないように)と <br> 情報共有と知っている人がいたらいいなあの３つがあります。 <br>  <br> &gt;しかし、自分で調べることが重要なのもまた事実。 <br>  <br> 御意 <br>  <br> &gt;DORに0x00(NORMAL-&gt;RESET)を書き込んだ後、 <br> &gt;DORに0x04(RESET-&gt;NORMAL)を書くのでは？ <br>  <br> アドバイスありがとうございます。 <br>  <br> 私の想定ではDORに0x00(NORMAL-&gt;RESET)の直後に <br> 割り込みが発生するとおもっています。 <br>  <br> DORに0x04(RESET-&gt;NORMALに関しては <br> MonaのMFDCDriverではモータスターと同時にこのコマンドを送っています。 <br> この操作のあとの割り込みはBochs,VPC,実機で確認しています。 <br>  <br>  <br>  <br>  <>
デフォルトの名無しさん<>sage<>03/02/15 01:38<> 9801/9821 Vol.2 メモリ・I/Oポート編 <br> http://www.webtech.co.jp/undoc/ <br> どぞ <>
デフォルトの名無しさん<>sage<>03/02/15 14:31<> <a href="../test/read.cgi/tech/1042375466/314" target="_blank">&gt;&gt;314</a> <br> ん？PC98？FDCのチップ名がD765AでＡＴ互換機のPD765と似てるけど、 <br> 互換互換性あるの？ポート番号だけ変えれば話が成り立つとか、、、 <>
デフォルトの名無しさん<>sage<>03/02/15 14:40<> <a href="../test/read.cgi/tech/1042375466/315" target="_blank">&gt;&gt;315</a> <br> 「D765A」じゃなくて「PD765A」の間違い。脱字ｽﾏｿ <br> あ。「互換」も余分だ。重ねてｽﾏｿ <>
デフォルトの名無しさん<>sage<>03/02/15 14:55<> 某OSのFDCドライバはPC98版とAT互換機版で90%くらい同じコードだよ <>
デフォルトの名無しさん<>sage<>03/02/15 19:15<> <a href="../test/read.cgi/tech/1042375466/315" target="_blank">&gt;&gt;315</a> <br> uPD765ですな。Aは改良版と言うことです。 <br> コマンドなんかは同じじゃなかったかな。 <br>  <>
涼宮茜  </b>◆AGE/HuBkMM <b><>sage<>03/02/15 19:33<> 　　　　　＿,.'⌒)　　　　／￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣ <br> 　　　, ´f二ｺヽ　　　 ／ そもそもSuper I/O chipに統合されてるので <br> 　 　 ! l !ﾉ ﾘ i l　　＜.　　NEC uPD765(A)そのものじゃないですしね。 <br> 　　ノiﾊl.ﾟ ｰﾟﾉﾘ　　　 ＼　NT4 DDKに付属するFD driver sampleは <br> 　　　 ⊂)允つ　　 　 　＼ 完成度としては最高だと思います。 <br> 　　　　　　　　　　　　　　 ＼＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿ <>
デフォルトの名無しさん<>sage<>03/02/15 20:06<> 結局、DORのbit3を立てないと割り込みが発生しないということのようですね <br>  <>
ゆりゅ </b>◆6KzN17336I <b><><>03/02/16 19:33<> さて。 <br> こっちに１度も書いたことなかったので、ちょっと書いてみよう <br> yuryu で参加してます。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/29" target="_blank">&gt;&gt;29</a> <br> ごめんなさい、ずっとさぼってました。 <br>  <br> 早く gcc が mona で動けばいいね・・・ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/18 00:24<> <a href="../test/read.cgi/tech/1042375466/314" target="_blank">&gt;&gt;314</a>さん <br> ありがとうございます。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/319" target="_blank">&gt;&gt;319</a> <br> NT4DDKって簡単にてにはいんるんでしょうか。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/320" target="_blank">&gt;&gt;320</a> <br> そのようですね。ありがとうございます。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/321" target="_blank">&gt;&gt;321</a> <br> ゆりゅさん <br> 一緒にがんばりましょう。 <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/18 00:50<> プロセス管理をきちんと実装したい。 <br> のに、FDCDriverがうまくいかない。 <br> GPLのソースを導入するのも良いとアドバイスをうけたので <br> 最悪その手もあるがここまでやったので・・・ <br>  <br> DMACの設定とかを丸ごとぱくってて理解していないのが悪いのだろう。 <br>  <br> seekはできないが、readができない。 <br> 早く先に進みたい・・・ <>
デフォルトの名無しさん<>sage<>03/02/18 01:21<> <a href="../test/read.cgi/tech/1042375466/323" target="_blank">&gt;&gt;323</a> <br> NWSOSみたいにBIOSってのも手だと思う <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/02/18 01:26<> <a href="../test/read.cgi/tech/1042375466/324" target="_blank">&gt;&gt;324</a> <br> 　実は、FDCのドライバ書くより、はるかにBIOSを呼び出すほうが技術的に <br> 難しいといって置きます。 <br>  <br> 　32BITプロテクトモードから、BIOSを呼び出すのはかなり大変なんです。 <br>  <br> 　最低でも仮想8086モードを利用するのですが、割り込みなども全部 <br> 「V8086へのリフレクト」が必要になります。 <br>  <br> 　レベル遷移も上下とも自由自在に行う必要があり、かなり複雑になります。 <br>  <br> （失礼ですが、FDCドライバが難しいと感じる人には無理だと断言しても <br> 過言ではないと思います。） <>
デフォルトの名無しさん<>sage<>03/02/18 01:44<> &gt;FDCドライバが難しい感じる人には無理 <br> 資料が無いから難航しているのでは？ <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/02/18 02:04<> <a href="../test/read.cgi/tech/1042375466/326" target="_blank">&gt;&gt;326</a> <br> 　FDC μPD765Aは、PC-8001の時代から使われていたCHIPで、資料というより <br> 出来上がったソースが一杯あるはずなのです。 <br> 　歴史が古いので、既に最適化も限界まで行われているはずで、セクタ <br> リード、ライトルーチンなどはそのままコピーして使えるほど簡単なん <br> です。BIOSのソースもあるでしょうし、それを32BITに変えることは非常に <br> 基本的なことですよ。 <>
デフォルトの名無しさん<>sage<>03/02/18 02:08<> <a href="../test/read.cgi/tech/1042375466/325" target="_blank">&gt;&gt;325</a> <br> いずれにせよVESAに手を出すとやらないといけないから脅すのもどうかと <>
デフォルトの名無しさん<>sage<>03/02/18 02:13<> <a href="../test/read.cgi/tech/1042375466/323" target="_blank">&gt;&gt;323</a> <br> &gt; GPLのソースを導入するのも良いとアドバイスをうけたので <br> &gt; 最悪その手もあるがここまでやったので・・・ <br> 別に最悪でもないと思う、ていうか現実的 <br> FDCに限らず色々なハード全部をサポートしきれるわけない <br>  <br> Windowsのドライバ流用はほとんど絶望的だけど <br> Linuxのドライバならソースもあるしやりようはあるだろう <br> でも新しいOSを作るのとは技術的に趣向も違うし <br> 誰か古狸の応援でも受ければ良い分野ではあるな <>
デフォルトの名無しさん<>sage<>03/02/18 04:14<> ひさしぶりに来てみました。 <br> いまはファイルシステムいじってるのかな？ <br> 過去レスみてきま～。 <br>  <br> がんばれ、ひげぽん！ <br>  <>
デフォルトの名無しさん<>sage<>03/02/18 11:40<> <a href="../test/read.cgi/tech/1042375466/327" target="_blank">&gt;&gt;327</a> <br> いや、小学生の頃からアセやってる様な人には簡単かもしれんが、 <br> 最近始めた人間にとっては例えソースや資料があったとしても、 <br> デバイス相手はなかなか勝手が分からん物なのだよ。 <br> ワシも最初は随分苦労したよ。要は慣れの問題。 <br> 今はアレでもそのうちなんとかなるさ。 <br> このスレはそういう場所。 <>
デフォルトの名無しさん<>sage<>03/02/18 14:41<> <a href="../test/read.cgi/tech/1042375466/325" target="_blank">&gt;&gt;325</a> <br> 今日できなくても、明日できるかもしれない。 <br> 明日できなくても、一週間後にはできるかもしれない。 <br>  <br> 自分の趣味の時間を使ってやってるのだから、 <br> 今できるかではなく、出来るようになってやる、という気持ちのが大切。 <br> と思われるが如何か？ <br>  <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/02/18 15:08<> <a href="../test/read.cgi/tech/1042375466/332" target="_blank">&gt;&gt;332</a> <br> それは一向に構わないんですよ。 <br>  <br> でも、Monaのページにご覧になったかどうかは分かりませんが、 <br> 正直言って: <br>  <br> 「今、一番将来性のあるOSかもしれません。」 <br>  <br> は誇大だと思います。 <br>  <br> なぜなら、もっとできる人が世の中には山ほどいるからです。 <>
デフォルトの名無しさん<>sage<>03/02/18 15:58<> はっきり言ってMonaはまだ何も出来てなくてOSなんて呼べる代物じゃない。 <br> それは作ってる人間が一番良く知ってるだろ。 <br> でも、何も出来てないって事は同時にこれから何でも出来るかもしれないと <br> いう可能性を秘めてるわけだ。 <br> あそこの「将来性」ってのはそういう事が言いたいんじゃないのか？ <br> そういう意味での「将来性」ってのはWindowsやLinuxやNWSOSにはない。 <br> Monaの専売特許だよ。あのページはそれを希望とちょこっとのアイロニー <br> を添えて書いてるんだよ。だから誇大でもなんでもないだろ。 <br> アゲ足とるのはヤメレ。 <>
デフォルトの名無しさん<>sage<>03/02/18 16:31<> Windows, Mac, Linuxのような物は、それなりの人数と年月がないと作れない以上、 <br> ぶっちゃけ、OS作りなんて、趣味以外の何者でもないと思う。 <br>  <br> OSASK や Mona のように、大きな夢を掲げて楽しくみんなで開発するのも良し、 <br> MEG-OSのように萌え路線に走るのも良しで、楽しいことが重要ではないのか？ <br>  <br> 334にかぶるが、あげ足とるのはやめて楽しめと <>
名無したん＠お嬢<>sage<>03/02/18 16:34<> ﾒｸﾞﾀｿは別に「萌え」に走ったわけじゃないょぅ。 <br> たまたま「萌え」を実装してみたらみんながそっちに注目してるだけだょぅ <br>  <br> でも、「MOE」は最近実装しましたがヽ(｀ー´)ノ <br>  <>
デフォルトの名無しさん<>sage<>03/02/18 16:42<> <a href="../test/read.cgi/tech/1042375466/336" target="_blank">&gt;&gt;336</a> <br> 違ったのか．．．ｽﾏｿ <br> OSのことはさっぱりだが、ガムバレ メグタン <>
名無したん＠お嬢<>sage<>03/02/18 16:47<> がんばるょぅヽ(｀ー´)ノ <>
デフォルトの名無しさん<>sage<>03/02/18 18:52<> <a href="../test/read.cgi/tech/1042375466/333" target="_blank">&gt;&gt;333</a> <br> 何様ですか？ <>
デフォルトの名無しさん<>sage<>03/02/18 19:29<> <a href="../test/read.cgi/tech/1042375466/333" target="_blank">&gt;&gt;333</a> <br> ('A`) ぬるぽ <>
デフォルトの名無しさん<>sage<>03/02/18 19:49<> <a href="../test/read.cgi/tech/1042375466/339" target="_blank">&gt;&gt;339</a> <br> ﾁﾐも十分「何様ですか？」だがな。 <>
デフォルトの名無しさん<>sage<>03/02/18 20:33<> <a href="../test/read.cgi/tech/1042375466/339" target="_blank">&gt;&gt;339</a> <br> LightCone様です。 <br> http://pc.2ch.net/test/read.cgi/os/1039075591/ <>
デフォルトの名無しさん<>sage<>03/02/18 22:00<> ヽ(｀ー´)ノ らいこんたま、らいこんたま、わーい、わーいヽ(｀ー´)ノ  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/18 22:37<> <a href="../test/read.cgi/tech/1042375466/330" target="_blank">&gt;&gt;330</a> <br> &gt;がんばれ、ひげぽん！ <br>  <br> ありがとうございます。 <br>  <br> えーと。 <br> 私のしょぼい技術のせいで、ちょっとした <br> 騒動？になっていて申し訳ありません。m(__)m <br>  <br> この場であまり弱音を吐かず、技術を着実に少しずつでもつけられるよう <br> 精進いたします。 <>
デフォルトの名無しさん<>sage<>03/02/18 23:12<> Lﾀﾝ、MONAに脅威をもってついに攻撃を始めたか。 <br> よっぽど脅威に思ったと見える(藁 <br>  <br> ある意味MONAにとっては大人の仲間入りの洗礼だね。 <br> OSASKでもそういうことあったしね。 <br>  <br> Lﾀﾝは、自分がプログラムに費やした時間と <br> ｱｾを半年前にはじめたﾋｹﾞﾎﾟｿを比べて言っているのだろうか。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/02/18 23:57<> <a href="../test/read.cgi/tech/1042375466/345" target="_blank">&gt;&gt;345</a> <br> ある人が学習に費やした時間の間も、別の人にも時間があったはずです。 <br> その間にやったことが今を作ります。もちろん、年齢も関係あるとは <br> ありますけれども、、、。 <>
デフォルトの名無しさん<>sage<>03/02/19 00:05<> <a href="../test/read.cgi/tech/1042375466/346" target="_blank">&gt;&gt;346</a> <br> そこまで分かってるなら、話が早い。 <br> ﾋｹﾞﾎﾟｿは、今までLﾀﾝがまあまあ得意な分野とは <br> 違う分野に時間を費やしていたのでは？ <br>  <br> Lﾀﾝ冷静になれ、この分野での経験年数・基礎知識をよーく考慮してみれ。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/02/19 00:26<> <a href="../test/read.cgi/tech/1042375466/347" target="_blank">&gt;&gt;347</a> <br> 「ﾋｹﾞﾎﾟｿは、今までLﾀﾝがまあまあ得意な分野とは <br> 違う分野に時間を費やしていたのでは？」 <br> それはわかります。 <br>  <br> しかし、その状況で、 <br>  <br> 「今、一番将来性のあるOSかもしれません」 <br>  <br> と繋がっていくのかが分かりません。 <br>  <br> （アセンブラも知らない、FDCの制御も出来ない、時間もない、資料も集め <br> られない、学習速度も個人的には早いとは思えない状況下で、、、。） <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/02/19 00:30<> 「二重かきこ」と言われそうですが、気になるので追伸。 <br>  <br> 自分の作っている作品の事を「将来性がある」と豪語することと、 <br> 「私は何も知りません」と言って、2chで聞きまくっている状況とが <br> 全くか合わないように感じるのです。 <br>  <br> （実は本心では自信過剰で、猫かぶってるんじゃないかと） <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/19 00:31<> FD Read実験成功しました。 <br> ただしVPCと実機のみ(Bochs)はまだです。 <br> DMACのステータスレジスタの様子がBochsだけ違うので <br> ちょっと調べ中。 <>
デフォルトの名無しさん<>sage<>03/02/19 00:47<> （L氏とH氏の一騎打ちか？わくわく） <>
</b> ◆yuta/1aRV. <b><>sage<>03/02/19 01:09<> おいおい、いい加減止めようぜ。こんな話題。 <br> ひげぽん氏の<a href="../test/read.cgi/tech/1042375466/350" target="_blank">&gt;&gt;350</a>の書き込みがなんだか縮こまって見えて可哀想だ。 <br>  <br> 個人的にはLightCone氏の意見に近いが、 <br> こんなところに書いても不毛な議論(?)だろ。 <>
デフォルトの名無しさん<>sage<>03/02/19 01:10<> <a href="../test/read.cgi/tech/1042375466/348" target="_blank">&gt;&gt;348</a> <br> ＞今、一番将来性のあるOSかもしれません <br> こういうキャッチコピーはふつう大げさなもんだって。 <br> 真面目に考えちゃいかんよ。 <>
デフォルトの名無しさん<>sage<>03/02/19 01:22<> そういうこった。ﾏﾀｰﾘしる！ <>
デフォルトの名無しさん<>sage<>03/02/19 01:43<> まぁ、同じOS作成経験のあるものからすれば、Lﾀﾝが現在のMonaについて歯痒い思い <br> をしててそれで噛み付いてるってのも分からんでもないが、実力があるんならあるで <br> どっしり構えて超先生みたく暖かく見守れないものだろうかね。どうよ？＞Lﾀﾝ <>
デフォルトの名無しさん<>sage<>03/02/19 02:06<> ＞（実は本心では自信過剰で、猫かぶってるんじゃないかと） <br> よく言った!! <br> 実はみんなそう思ってるんだろうけど... <>
デフォルトの名無しさん<>sage<>03/02/19 02:28<> 理屈で叩くより感情で叩いた方が有効な場合が多いことを学んだらしい <br> どうせばれるにしろ名無しで叩かないところは流石です <br>  <>
デフォルトの名無しさん<>sage<>03/02/19 02:32<> 良スレなので余り反応したくないのですが、念のため一言だけ： <br>  <br> 　荒　ら　し　は　放　置　の　方　向　で <>
hisohiso </b>◆g2j80BX5do <b><>sage<>03/02/19 02:47<> Mona develop beta 0.02b のタグがない様です。大雑把に <br> cvs rtag -f -D 2003/1/30 develop_beta_ver0_02 mona_v1.0 <br> タグを打って、これをチェックアウトしたものと <br> 配布パッケージを diff -r で比較しながら <br> cvs tag -F -r (rev) develop_beta_ver0_02 path/to/file <br> タグを調整すると楽ですよ <br>  <>
デフォルトの名無しさん<>sage<>03/02/19 13:28<> ところで、MEG-OSって今どこにあるの？ <br> meg-os.org逝ったらアダルトサイトだったんだけど…(;´Д｀) <>
名無したん＠お嬢<>sage<>03/02/19 13:31<> ちょっと入り口変わっただけだょぅ。昔から18禁だったょぅヽ(｀ー´)ノ <>
360<>sage<>03/02/19 15:32<> ガーン。初めて行ったから間違えたかと思ったよ。ありが㌧ <>
名無したん＠お嬢<>sage<>03/02/19 15:35<> ところで今ﾒｸﾞﾀｿはｽｯﾄﾞﾚ実装中なんですけどｽｹｼﾞｭｰﾗの <br> 参考になるサイトとかないんですかね？ <br>  <br> 現状のスケジューラは禿しく糞らしいんで(つД｀) <br>  <>
デフォルトの名無しさん<>sage<>03/02/19 17:57<> なんとなく見つけた記事だが、 <br> http://www.atmarkit.co.jp/fpc/xp_feature/display/display.html <br> &gt;最新版であるVBE 3.0には、いわゆるVGA BIOSの拡張だけでなく、 <br> &gt;プロテクト・モードから拡張機能（VGAに対する）を呼び出す <br> &gt;エントリ・ポイントが用意されており、Windows XPの標準ドライバは、 <br> &gt;このプロテクト・モード・インターフェイスを用いている <br> プロテクトモードでそのままVGA BIOSが使えるということで？ <br> 識者の解説キボン <>
デフォルトの名無しさん<>sage<>03/02/19 22:54<> <a href="../test/read.cgi/tech/1042375466/364" target="_blank">&gt;&gt;364</a> <br> そのための呼び出し手順が拡張されている様ですな。 <br> 詳細 http://www.vesa.org/vbe3.pdf <br>  <>
FreeDOS教徒<>osage<>03/02/20 12:45<> <a href="../test/read.cgi/tech/1042375466/364" target="_blank">&gt;&gt;364</a> <br> プロテクトモードで対応するVBEファンクションが <br> 呼び出せるというだけです。 <br>  <br> 「VGA BIOSがそのまま使える」というわけではありません。 <br> ちなみにこの機能はVBE 2.0から実装されてます。 <>
デフォルトの名無しさん<>sage<>03/02/20 13:40<> <a href="../test/read.cgi/tech/1042375466/365" target="_blank">&gt;&gt;365</a>,366 <br> 多謝。PDF見ると、初期化が複雑そうなﾖｶﾝ <>
デフォルトの名無しさん<>sage<>03/02/20 20:34<> てすとん <>
デフォルトの名無しさん<>sage<>03/02/21 03:16<> 本当の所、Lﾀﾝは、ﾋｹﾞﾎﾟﾝﾀﾝに口を出したいけど <br> 口を出すと、自分のOSとの区別がつかなくなってくるから <br> それを嫌って、口を出せないのが悔しく <br> また、ﾋｹﾞﾎﾟﾝﾀﾝの作業が遅々として進まないのも <br> もどかしく、黙って見守るのが辛くなって <br> 口撃してみる事したのでは？ <br> と、今更むしかえしてみる <br>  <br>  <br>  <br>  <br>  <br>  <br>  <br>  <br>  <br>  <br>  <br>  <br>  <br>  <br>  <br>  <br>  <br>  <br>  <br> こんな事書いてるけど、別に二人の事を馬鹿にしてる訳ではないよ <br> 本当に <>
デフォルトの名無しさん<>sage<>03/02/21 14:56<> http://qb.2ch.net/test/read.cgi/saku/1027998169/ <br> このｽﾚは面白いな <br> 削除依頼ｽﾚに愚痴を書くLﾀｿ萌へ <>
デフォルトの名無しさん<>sage<>03/02/21 15:15<> スレと関係ないレスは自粛汁！ <>
デフォルトの名無しさん<>sage<>03/02/21 15:45<> http://pc.2ch.net/test/read.cgi/os/1039075591/682 <br> このレスをLightConeはよく読み返してみるべきだと思う <br> ゴチャゴチャ口出しされたくないといいつつ、MONAや <br> ひげぽん自身に対して要らぬレスをしすぎ。 <br> 自分が散々叩かれたからここで憂さ晴らししてるのか。 <>
名無したん＠お嬢<>sage<>03/02/21 15:55<> ﾒｸﾞﾀｿもｿｰｽ公開したら叩かれたょぅ。えう～ヽ(｀ー´)ノ <>
デフォルトの名無しさん<><>03/02/21 21:40<> <a href="../test/read.cgi/tech/1042375466/372" target="_blank">&gt;&gt;372</a> <br>  そうか？　確かにここに来て、批判的な書き込みもあるが <br> 少なくともこのスレシリーズでは、LightCone氏はヒゲポン氏に対して <br> 「良き先輩」としての暖かいアドバイスを送っている方が多いと思うぞ｡ <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/02/21 22:23<> 　IRCでも指摘されたんですけど、Monaのページを作っているのは、ひげぽん <br> さん自身じゃなかったんですね。 <br>  <br> 　ですので、#348, #349は言いすぎでした。すみません。 <br>  <br> 　（でもまあ、取り立ててひげぽんさんの学習速度が早いとは思えま <br> せんね。すみませんが。） <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/21 22:45<> <a href="../test/read.cgi/tech/1042375466/375" target="_blank">&gt;&gt;375</a> LightConeさん <br>  <br> こんばんは。 <br> &gt;　IRCでも指摘されたんですけど、Monaのページを作っているのは、ひげぽん <br> &gt;さん自身じゃなかったんですね。 <br> &gt; <br> &gt;　ですので、#348, #349は言いすぎでした。すみません。 <br>  <br> いえ。 <br> LightConeさんが、そう思われた経緯も理解できますので <br> 全然気にしてないです。 <br>  <br> というわけで、これからもよろしくお願いします。 <br>  <br> &gt;　（でもまあ、取り立ててひげぽんさんの学習速度が早いとは思えま <br> &gt;せんね。すみませんが。） <br>  <br> 自分でも早いと思っていないので（笑） <br>  <br>  <br>  <br>  <br>  <>
デフォルトの名無しさん<><>03/02/22 00:16<> <a href="../test/read.cgi/tech/1042375466/1" target="_blank">&gt;&gt;1</a> <br> 最高にくだらないもん作ってるなｗｗ <br> 俺こういうくだらない笑いが好きだｗｗｗ <>
デフォルトの名無しさん<>sage<>03/02/22 00:35<> 正直、電波飛び交ってるよな。 <br> ま、冷静に考えたら、酔狂だ。 <br> そんな漏れも、ここ読んでる時点で、糞馬鹿。（ｗ <>
デフォルトの名無しさん<>sage<>03/02/22 09:44<> <a href="../test/read.cgi/tech/1042375466/375" target="_blank">&gt;&gt;375</a> <br> 一言多くないですか？ <>
デフォルトの名無しさん<>sage<>03/02/22 10:39<> <a href="../test/read.cgi/tech/1042375466/379" target="_blank">&gt;&gt;379</a> <br> 俺もそう思う。 <br> 別に誰もひげぽんが早いなんて言ってないのに <br> いちいち言わなくてもいいんじゃない。 <br> 早くないことを指摘すると何かいいことあるのか？ <br>  <>
デフォルトの名無しさん<>sage<>03/02/22 11:19<> まあ、アレだ。 <br> コンピュータにだけ向かい合って来たんで、 <br> 言葉を"オブラートに包む"事が出来なくなったんだろ。 <>
デフォルトの名無しさん<><>03/02/22 11:42<> 最小限の労力で的確に急所を突くという動作は、 <br> ある種の職業病ですが、何か？ <br>  <br> つうか、おまいら。寒いです <>
デフォルトの名無しさん<>sage<>03/02/22 12:21<> コンピュータに携わると人を見下す性格がデフォルトとなるようです <>
デフォルトの名無しさん<>sage<>03/02/22 12:27<> 端的に言うと、 <br> 自分の（画期的、先進的な）アイデアは真似されたくないのに、 <br> 自分がやっていることは高度であると自慢したいから、 <br> このスレに居着いて先輩面して箸にも棒にもかからない中途半端な助言だけしてるわけだ。 <br>  <br> 自分が中心でないと気が済まない。 <br> このスレはタテマエはともかく、主人公はひげぽんなわけだし、 <br> ひげぽん寄りな意見の人が多く集まるのは当然なんだが <br> それが理解できず、自分に賛同しない物が居るとひげぽんを叩く。 <>
デフォルトの名無しさん<>sage<>03/02/22 14:05<> <a href="../test/read.cgi/tech/1042375466/384" target="_blank">&gt;&gt;384</a> <br> ひげぽん寄りな意見の人が多く集まるのは当然なんだが  <br> それが理解できず、自分に賛同しない物が居るとひげぽんを叩く。  <br>  <br> そうそう。Ｌは自分がなにやってるのか分からないんだろうな。 <br> というか、ここで、このスレと関係ない話題で盛り上がるのはｲｸﾅｲから <br>  <br> Ｌ　の　話　題　は　Ｌ　の　ス　レ　で <br>  <br> ってことでどうでしょう？ <>
デフォルトの名無しさん<>sage<>03/02/22 14:41<> ↓のスレOSの勉強になりそうですよ <br>  <br> 次はNetBSDがきますVol.1 <br> http://pc.2ch.net/test/read.cgi/os/1045830003/ <>
NWSOS信者 </b>◆HX8gJR.Gyw <b><>sage<>03/02/23 00:00<> はじめまして、NWSOS信者と申します。 <br>  <br> 教祖様が叩かれているのでフォローしますと、 <br> 教祖様は単純に自己にある物差しで、人や物を観察、評価し表現するのです。 <br> その結果、周囲が不愉快になるかどうかはまた別問題ですが、大抵の日本人は <br> その問題を丁寧に処理します。つまり、大多数の人が気を使うとこなのね。 <br>  <br> だけど、教祖様はそんな情的なことには関心がないの。 <br> そこで、謝った判断材料で「○○さんは覚えが早いとは思えません」など <br> 国内の常識人が見れば一言多い言動となるわけです。 <br>  <br> OSを開発している稀有な人材が集まってるのだから、つまらない揚げ足どりで <br> 膠着させるのは止めましょう。 <>
デフォルトの名無しさん<>sage<>03/02/23 00:22<> part2に逆戻りと言われそうですが、どうしてもエラーの原因がわからない <br> ので、御教授ください。 <br> 少々長いですけどすみません。 <br> 0x07C0:0x0000 から 512バイト (ブートセクター) <br> 0x07E0:0x0000 から 1024バイト (カーネル) <br>  <br> ＜Bochsのエラー＞ <br> Event type: PANIC <br> Device: [CPU  ] <br> Message: exception(): 3rd (13) exception with no resolution <br>  <br> 00000573597i[CPU  ] protected mode <br> 00000573597i[CPU  ] CS.d_b = 16 bit <br> 00000573597i[CPU  ] SS.d_b = 16 bit <br> 00000573597i[CPU  ] | EAX=60000011  EBX=000007c0  ECX=00000002  EDX=00000000 <br> 00000573597i[CPU  ] | ESP=0000fffe  EBP=00000000  ESI=000000d9  EDI=000007e0 <br> 00000573597i[CPU  ] | IOPL=0 NV UP DI PL NZ NA PE NC <br> 00000573597i[CPU  ] | SEG selector     base    limit G D <br> 00000573597i[CPU  ] | SEG sltr(index|ti|rpl)     base    limit G D <br> 00000573597i[CPU  ] |  DS:07c0( 0000| 0|  0) 00007c00 0000ffff 0 0 <br> 00000573597i[CPU  ] |  ES:07c0( 0000| 0|  0) 00007c00 0000ffff 0 0 <br> 00000573597i[CPU  ] |  FS:0000( 0000| 0|  0) 00000000 0000ffff 0 0 <br> 00000573597i[CPU  ] |  GS:0000( 0000| 0|  0) 00000000 0000ffff 0 0 <br> 00000573597i[CPU  ] |  SS:07c0( 0000| 0|  0) 00007c00 0000ffff 0 0 <br> 00000573597i[CPU  ] |  CS:07c0( 0000| 0|  0) 00007c00 0000ffff 0 0 <br> 00000573597i[CPU  ] | EIP=000000da (000000da) <br> 00000573597i[CPU  ] | CR0=0x60000011 CR1=0x00000000 CR2=0x00000000 <br> 00000573597i[CPU  ] | CR3=0x00000000 CR4=0x00000000 <br> 00000573597i[     ] restoring default signal behavior <>
デフォルトの名無しさん<>sage<>03/02/23 00:23<> [bits 16] <br>     jmp 0x07C0:start    ;CSコードセグメントを設定する。 <br>      <br> start: <br>     ;セグメントの設定 <br>     mov ax, 0x07C0 <br>     mov ds, ax <br>     mov es, ax <br>     mov ss, ax <br>  <br>     ;ブートスタートメッセージを表示する <br>     mov     si, BootStart_Msg <br>     call    print <br>  <br>     ;FDからセカンドセクター以降を0x07E0:0x0000へ読み込み <br>     call    read <br>     mov     bx, 0x07C0 <br>     mov     es, bx <br>  <br>     mov     si, KernelLoad_Msg <br>     call    print <br>      <br>     lgdt    [gdtr] <br>      <br>     ;割り込みの禁止 <br>     cli <>
デフォルトの名無しさん<>sage<>03/02/23 00:24<>     ;CR0の1bit目をセットし、プロテクトモードへ移行する <br>     mov     eax, cr0 <br>     or      eax, 1 <br>     mov     cr0, eax <br>  <br>     jmp flush_q1; <br>     ;-------------------------------------------------- <br>     ;グローバルディスクリプタテーブル(GDT)定義 <br>     ;-------------------------------------------------- <br>  <br> gdtr: <br>         dw gdt_end - gdt0 - 1   ; gdt limit <br>         dd gdt0                 ; start adderess <br>  <br> gdt0:                           ; segment 00 <br>         dw 0                    ; segment limitL <br>         dw 0                    ; segment baseL <br>         db 0                    ; segment baseM <br>         db 0                    ; segment type <br>         db 0                    ; segment limitH <br>         db 0                    ; segment baseH <br>  <br> gdt08:                          ; segment 08(code segment) <br>         dw 0xffff               ; segment limitL <br>         dw 0                    ; segment baseL <br>         db 0                    ; segment baseM <br>         db 0x9a                 ; Type Code <br>         db 0xcf                 ; segment limitH <br>         db 0                    ; segment baseH <>
デフォルトの名無しさん<>sage<>03/02/23 00:26<> gdt10:                          ; segment 10(data segment) <br>         dw 0xffff               ; segment limitL <br>         dw 0                    ; segment baseL <br>         db 0                    ; segment baseM <br>         db 0x92                 ; Type Data <br>         db 0xcf                 ; segment limitH <br>         db 0                    ; segment baseH <br>  <br> gdt18:                          ; segment 18(stack segment) <br>         dw 0                    ; segment limitL <br>         dw 0                    ; segment baseL <br>         db 0                    ; segment baseM <br>         db 0x96                 ; Type Stack <br>         db 0xc0                 ; segment limitH <br>         db 0                    ; segment baseH <br>  <br> gdt_end:                        ; end of gdt <>
デフォルトの名無しさん<>sage<>03/02/23 00:26<>     ;------------------------------------------------------------------- <br>     ;                       文字列を表示する <br>     ;入力レジスタ   ds:si(文字列の先頭アドレス) <br>     ;使用レジスタ   ah, al <br>     ;------------------------------------------------------------------- <br>  <br> print: <br>     mov ah, 0x0E <br>     mov al, [si] <br>  <br>     cmp al, 0x00 <br>     je  print_return <br>  <br>     int 0x10             ;１文字表示(int 0x10, ah=0x0E, al=文字コード) <br>     inc si <br>     jmp print <br>  <br> print_return: <br>     ret <>
デフォルトの名無しさん<>sage<>03/02/23 00:35<>     ;------------------------------------------------------------------- <br>     ;            　　　　　カーネルをFDから読み込む <br>     ;------------------------------------------------------------------- <br> read: <br>     ;ディスクリセットをする <br>     mov ax, 0x0 <br>     mov dl, 0x0 <br>     int 0x13        ;ディスクリセット(int 0x13, ah=0x00, al=ドライブ番号) <br>     jc  read_err <br>      <br>     ;0x07E0:0x0000へFDから読み込む <br>     mov ah, 0x02 <br>     mov al, 0x02 <br>     mov ch, 0x00 <br>     mov cl, 0x02    ;セクタ番号だけは0x1から始まるから <br>     mov dh, 0x00 <br>     mov dl, 0x00 <br>     mov di, 0x07E0 <br>     mov es, di <br>     mov bx, 0x0000 <br>     int 0x13        ;(*) <br>     jc  read_err <br>     jmp read_return <br>  <br> read_err: <br>     mov  si, DiskReadErr_Msg <br>     call print <br>     jmp  read <br>  <br> read_return: <br>     ret <>
デフォルトの名無しさん<>sage<>03/02/23 00:36<> ;メッセージ一覧 <br> BootStart_Msg: <br>     db 'now boot starting!!...', 0x0D, 0x0A, 0x00 <br> DiskReadErr_Msg: <br>     db 'disk read err', 0x0D, 0x0A, 0x00 <br> KernelLoad_Msg: <br>     db 'kernel load success!', 0x0D, 0x0A, 0x00 <br> [bits 32] <br> flush_q1: <br>     ;ここでエラー終了する。 <br>     ;セグメント間ジャンプ命令によってCSレジスタに0x0008をロードする。 <br>     db 0eah <br>     dw set_cs_desc1 + 0x7C00 <br>     dw 0x0008 <br> set_cs_desc1: <br>     mov  ax, 0x10           ; ds & es <br>     mov  ds, ax             ; selector is <br>     mov  es, ax             ; 0x10 <br>     mov  ax, 0x18           ; ss selector <br>     mov  ss, ax             ; is 0x18 <br>     mov  esp, 1024*1024*8   ; sp is 8MB <br>     jmp kernel <br>     ;$ 現在の行の先頭アドレスをさす。 <br>     ;$$ 現在のセクションの先頭アドレスをさす。 <br>     ;($-$$) セクションの先頭からのバイト数 <br>     times 510-($-$$) db 0 ;510-($-$$) bytesを0で埋める <br>     dw 0xAA55             ;ブートシグニチャ <br> kernel: <>
デフォルトの名無しさん<>sage<>03/02/23 00:38<> 大量消費ですみません。 <br> どこかにUpした方が良かった．．． <br> 御教授お願いします。 <>
FreeDOS教徒<>osage<>03/02/23 00:47<> どこからツッコんだらいいか分かりません。。 <br>  <>
デフォルトの名無しさん<>sage<>03/02/23 00:54<> エラーで止まった、EIP=000000da　の場所は最後の方の <br> ;ここでエラー終了する。 <br> ;セグメント間ジャンプ命令によってCSレジスタに0x0008をロードする。 <br> db 0eah <br> dw set_cs_desc1 + 0x7C00 <br> dw 0x0008 <br> にあたるのですが、そこを逆汗してもきちんと正しいと思われる内容が <br> 表示されていて、何故エラーなのか原因がわかりません。 <>
デフォルトの名無しさん<>sage<>03/02/23 00:55<> パクッテル、そして、、、それがうごかない。 <>
デフォルトの名無しさん<>sage<>03/02/23 01:06<> <a href="../test/read.cgi/tech/1042375466/398" target="_blank">&gt;&gt;398</a> <br> IDT関連の部分は、パクリました。ゴメンなさい。 <br> 後々、独自に設定します。 <br>  <br> 一度はプロテクトモードでVRAM出力まで行けたのですが、 <br> どういうわけか、後々のことを考えたコードに書きなおすと、 <br> エラーで動かなくなりました。 <br> 読みにくければ、どこかにUPします。 <br> どうか御教授ください。 <>
デフォルトの名無しさん<>sage<>03/02/23 01:12<> IDT間違い GDTです。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/23 01:49<> 懐かしいなあ。 <br> 今すぐはわからなそうです。ごめんなさい。 <br> というか忘れてる・・・ <br>  <br> VirtualConsole作戦は時期尚早だったと後悔気味です。 <br> newしないと、文字出力できないということは <br> メモリ管理オブジェクトのデバッグが非常に困難・・・ <br>  <br> 安定していると思っていた、カーネルメモリ管理クラスの挙動が怪しい。 <>
デフォルトの名無しさん<>sage<>03/02/23 02:13<> http://www.geocities.co.jp/SiliconValley-Sunnyvale/1176/os.zip <br> IDT部分はまだ途中なので気にしないでください(コメントアウトしています)。 <br> Make わからないので、バッチファイル使っていることも許してください．．． <br>  <br> ひげぽんさん <br> Part5まで、ひげぽんさんより時間かかる自信あります(笑) <br> 私などから見れば、ものすごいスピードで進んでいるように見えますよ。 <br> 頑張ってください。 <>
デフォルトの名無しさん<>sage<>03/02/23 02:39<> dd gdt0 + 0x7c00 <>
デフォルトの名無しさん<>sage<>03/02/23 02:53<> <a href="../test/read.cgi/tech/1042375466/403" target="_blank">&gt;&gt;403</a> <br> どうもありがとうございます！ <br> そんな基本的な部分に抜け落ちがあるとは気づきませんでした。 <br> 以後、このような基本的な部分でのミスがなきよう注意します。 <br>  <br> BochsではきっちりプロテクトモードVRAM文字出力まで行うことができたのですが、 <br> 実機ではブートセクターを読み込んだらすぐに再起動になる現象は <br> やはりまだ直っていないようなので、もうすこし頑張ります。 <br> startラベル以下でのセグメントの設定をしていなかったのがまずかったのかと <br> 思い、修正した結果がこのバグだったのです．．． <>
デフォルトの名無しさん<>sage<>03/02/23 03:24<> FreeDOS教徒さん、403さん <br> 夜遅くまでお手数かけました。 <br> 実機の問題は、明日やってみることにします。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/23 15:17<> &gt;　hisohisoさん <br> タグの件ご指摘ありがとうございます。 <br> 次回のリリースの際には気をつけます。m(__)m <br>  <>
デフォルトの名無しさん<>sage<>03/02/23 20:02<> <a href="../test/read.cgi/tech/1042375466/404" target="_blank">&gt;&gt;404</a> <br> スタックポイント(sp)が設定されていないから <br> だと思います <br> mov ss,ax <br> の次の行に <br> mov sp,0xffff <br> を追加してみてください <br>  <>
デフォルトの名無しさん<>sage<>03/02/23 20:07<> ｽｯﾀｸﾎﾟｲﾝﾀ奇数かよ <>
デフォルトの名無しさん<>sage<>03/02/23 20:15<> <a href="../test/read.cgi/tech/1042375466/407" target="_blank">&gt;&gt;407</a> <br> に追加 <br> "mov ss,ax"はstartラベルに近い方の事です <>
FreeDOS教徒<>osage<>03/02/23 20:33<> <a href="../test/read.cgi/tech/1042375466/407" target="_blank">&gt;&gt;407</a> <br> xor sp,spでもいいんでない？ <br>  <>
デフォルトの名無しさん<>sage<>03/02/23 21:24<> <a href="../test/read.cgi/tech/1042375466/407" target="_blank">&gt;&gt;407</a>(409),FreeDOS教徒さん <br> 返事遅くなりました。 <br> start: <br>     ;セグメントの設定 <br>     mov     sp, 0xFFFF <br> ;xorsp,sp <br>     mov     ax, 0x07C0 <br>     mov     ds, ax <br>     mov     es, ax <br>     mov     ss, ax <br> と修正したところ、実機の方でもうまく動きました。 <br> 御教授ありがとうございます。 <br> セグメント間ジャンプをしたのにSPの設定をしていないためということが原因で、 <br> FreeDOS教徒さんが示された SP = 0x0000 に指定すると言うのは、 <br> SP から -1 すると SP = 0xFFFF ということになり、 <br> 無駄なくセグメントを利用できるということなのでしょうか．．． <>
FreeDOS教徒<>osage<>03/02/23 22:39<> <a href="../test/read.cgi/tech/1042375466/411" target="_blank">&gt;&gt;411</a> <br> 0x0000に指定しておけば、次に積まれるスタックの内容は <br> sp-2=0xFFFEに置かれます。 <br>  <br> あと、割り込みの暗黙的な禁止はスタックセグメントの <br> 操作後１命令だけですし、そのような順番はあまり <br> 良くないので、mov sp,～はmov ss,～のすぐ後に移し <br> たほうがよいでしょう。 <>
デフォルトの名無しさん<>sage<>03/02/23 23:44<> &gt;&gt;FreeDOS教徒さん <br> 修正しました。重ね重ねご助言ありがとうございます。 <>
デフォルトの名無しさん<>sage<>03/02/24 03:48<> 突然ですがMONAはGUI実装予定ありますか？ <br>  <br> プログラム技術＠2ch掲示板でこんなスレ上がってますが <br> http://pc2.2ch.net/test/read.cgi/tech/1045907529/l50 <br>  <br> ＃2ch-OS、マジで頑張ってください。 <br>  <>
デフォルトの名無しさん<><>03/02/24 18:38<> <a href="../test/read.cgi/tech/1042375466/414" target="_blank">&gt;&gt;414</a> <br> &gt;突然ですがMONAはGUI実装予定ありますか？ <br> Monaのホームページ見てから書き込みしましょう。 <>
デフォルトの名無しさん<>sage<>03/02/24 19:24<> GUI の代わりに <br>  <br> C-GUI or I(mitation)GUI　なんてどうでっしゃろ。 <br>  <br> 早く言えば AA の GUI よ。 <br> コレなら俺でも参加できる <>
デフォルトの名無しさん<>sage<>03/02/24 20:00<> GUIがどうとかいってるのはもう少しカーネルというものを <br> 勉強された方がいいかと <>
デフォルトの名無しさん<>sage<>03/02/24 20:05<> ﾊｧ？ <>
デフォルトの名無しさん<>sage<>03/02/24 20:21<> Site に FAQ を乗せてくれたらいいな・・・ <br>  <br> Windows と違うのは オープンソースだったり軽かったりセキュアだったりで <br> UNIX と違うのは <br> 　　&gt;&gt;Monaはなるべく過去の負の遺産を引き継がないように <br> ってあたりっすか？ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/24 22:20<> <a href="../test/read.cgi/tech/1042375466/414" target="_blank">&gt;&gt;414</a> <br> GUIはサポート予定です。 <br> ただし現時点では、GUIを実装する段階にはいたっておりませんので <br> しばらくはCUIのままだと思います。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/416" target="_blank">&gt;&gt;416</a> <br> &gt; C-GUI or I(mitation)GUI　なんてどうでっしゃろ。 <br>  <br> 面白いですねぇ。それでもまだ、現段階では時期尚早かもしれません。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/419" target="_blank">&gt;&gt;419</a> <br> &gt;Windows と違うのは オープンソースだったり軽かったりセキュアだったりで <br> &gt;UNIX と違うのは <br> &gt;　　&gt;&gt;Monaはなるべく過去の負の遺産を引き継がないように <br>  <br> そうですね。大雑把に言って <br> 良いものはまねする、悪いものは出来るだけ引き継がないようにするというかんじです。 <>
デフォルトの名無しさん<>sage<>03/02/24 23:10<> &gt;Monaはなるべく過去の負の遺産を引き継がないように <br>  <br> 　時期がきたら、IA-32アーキテクチャ依存からの脱却キボンヌ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/25 00:27<> <a href="../test/read.cgi/tech/1042375466/421" target="_blank">&gt;&gt;421</a>さん <br> &gt;時期がきたら、IA-32アーキテクチャ依存からの脱却キボンヌ <br>  <br> これもだいぶ先ですが、できれば実現したいですね。 <br>  <br> 今日は割り込み処理をアセンブラに移行しました。 <br> 以前のC++の割り込み処理ではスタックが壊れているような印象があったので <br> いろいろな方のアドバイスをもとに現在の形に変えました。 <br>  <>
デフォルトの名無しさん<>sage<>03/02/25 06:05<> ２ｃｈ風ってところが、激しく世界を狭くしているな <br> もっとはっきり言えばヲタク的と言うか・・・いやマジで <>
デフォルトの名無しさん<>sage<>03/02/25 06:50<> <a href="../test/read.cgi/tech/1042375466/423" target="_blank">&gt;&gt;423</a> <br> 何の世界を？ <br> ヲタク的だって言いたいことはわかるが、だから世界をどう狭くしてるかわからん。 <br> あと世界が狭くてどう悪いのかも。 <br> 別に一般的に普及させたいOSを作るスレでもあるまいし・・・ <>
デフォルトの名無しさん<>sage<>03/02/25 10:45<> <a href="../test/read.cgi/tech/1042375466/424" target="_blank">&gt;&gt;424</a> 煽りは放置。釣られんなよ。 <>
デフォルトの名無しさん<>sage<>03/02/26 00:58<> <a href="../test/read.cgi/tech/1042375466/412" target="_blank">&gt;&gt;412</a> <br> bochs でデバッグしてるときに「espが０だ変だ」って言ってpanicしたことあるけど、 <br> 大丈夫かな。 <>
FreeDOS教徒<>osage<>03/02/26 14:02<> <a href="../test/read.cgi/tech/1042375466/426" target="_blank">&gt;&gt;426</a> <br> bochsは使いっぱなしだけど、今のところリアルモードで <br> xor sp,spして問題になったこと無いよ。 <>
デフォルトの名無しさん<>sage<>03/02/26 14:19<> <a href="../test/read.cgi/tech/1042375466/426" target="_blank">&gt;&gt;426</a> <br> espではなくspなので <br> 0でも大丈夫なのです <>
FreeDOS教徒<>osage<>03/02/26 18:00<> <a href="../test/read.cgi/tech/1042375466/428" target="_blank">&gt;&gt;428</a> <br> そうだったのか！Σ（ﾟдﾟ；） <br>  <br>  <br>  <>
デフォルトの名無しさん<>sage<>03/02/26 20:42<> 今、640*480(256色)モードで色々VGAに書き込んでいます。 <br>  <br> 書き込み色プレーン指定、ビットマスクの指定の後、 <br> ビットデータを書き込みたい場所のメモリ位置へ転送することで、１ドットを描画しています。 <br>  <br> この方法では、横８ドットを一度に書き込む必要があるので、 <br> 赤白黒緑赤白黒緑　のようなランダムなドット絵を描画するには、 <br> 同じ場所をビットマスクを変えて８回ビットデータを転送しなければいけません。 <br> 色々、アルゴリズム的な最適化をしてもかなり遅いです。 <br> Celeron1.7GのCPUで、Bochsだと全画面書き換えに1.5秒ぐらい、 <br> 実機でも書き換えがかんたんに見えるぐらい遅いです。 <br>  <br> PC-98では、 <br> Bプレーン 0xA8000～ Rプレーン 0xB0000～ Gプレーン 0xB8000～ Iプレーン 0xE0000～ <br> となってて、メモリアクセスだけで高速に描画できると思います。 <br>  <br> DOS/V の VGA に高速で書き込むには、640*480(2色) or 320*200(256色) モードに <br> 設定するしかないのでしょうか？ <>
デフォルトの名無しさん<>sage<>03/02/26 21:07<> （ココに書くの久々だなぁ… <br>  <br> <a href="../test/read.cgi/tech/1042375466/430" target="_blank">&gt;&gt;430</a> <br> OS側で色別に仮想VRAMを持って、それを一気に転送とか。 <br> （実際、VGA BIOSってかなり遅いし。 <br> ゲームとかの用途だとVGAサイズはリアルモードでは厳しいね… <br>  <br> プロテクトモードなら、他にVESA BIOSにLiner Frame Bufferを作ってもらうって手がある。 <br> <a href="../test/read.cgi/tech/1042375466/365" target="_blank">&gt;&gt;365</a>あたり。自分は使ったこと無いんで詳細は頑張って読んで… <br> ただし、こっちは対応してないグラフィックカードが有るらしい。(具体的にはi815。 <br>  <br> Master.Libのソースでも見てみるかな… <>
430<>sage<>03/02/26 21:40<> 書き込み有難うございます。 <br> 一応、作成しているプログラムはプロテクトモードOSのつもりｗ <br> なのでBISOは使えないです。I/Oポートに直接アクセスしています。 <br>  <br> 概要は、一度ビットマップ形式のバッファを作って、一気に書き込みといった雰囲気です。 <br>  <br> 素直に描画するのなら、１ドットの描画に、 <br> 書き込み色プレーン指定、ビットマスクの指定を、グラフィックコントローラーを操作して行い、 <br> 該当のメモリにビットデータを転送しています。工夫すれば、ビットマスクの指定はほとんど <br> しなくて良くなります。全画面更新のために、これを640*480回繰り返してるのですが、 <br> ホントに遅いです。 <br>  <br> VESA BIOSにLiner Frame Bufferに作ってもらうしかないのですか．．． <br> ちょっと試したことはあるのですが、内容があまり理解できてないというのもあり、 <br> モード指定の時点でもう失敗しているので、避けたいのですけどね。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/26 22:07<> FD読み込みが実機で失敗する現象がなかなか解決せず悩み中。 <br>  <br> リザルトステータスを見る限りでは <br> ST0= 0x40　コマンド異常終了 <br> ST1= 0x10　overrun FDCからの転送要求にホストが応答しない <br> ST2= 0x00 <br> C=   0x00 <br> H=   0x00 <br> R=   0x01 <br> N=   0x00 <br>  <br> DMACの設定かなと思って調査中。 <br> スタック破壊は原因ではなかった模様。 <>
デフォルトの名無しさん<>sage<>03/02/26 22:41<> Nは0でいいの？ <br> 俺もちょっとあやしいからどうだかわからんが… <>
デフォルトの名無しさん<>sage<>03/02/26 22:42<> Nは普通2のはず？ <>
FreeDOS教徒<>osage<>03/02/26 23:12<> <a href="../test/read.cgi/tech/1042375466/430" target="_blank">&gt;&gt;430</a> <br> 640x480x256って、どのビデオモード使ってるんですか？ <br> ふつー俺なんかだと拡張ビデオモード101hなんかを思いつくわけですが。。 <br>  <br> それはともかく、DspVVみたいなディスプレイドライバのソースとか、 <br> あとEOTAのソースなんかも参考になるんでないかなーとか思いますた。 <br>  <br> 現在全プレーンを一度に更新できる方法探し中。 <>
430<>sage<>03/02/26 23:30<> すみません、書き間違えてます。640*480(256色)→640x480(16色)です。 <br> EOTA では、構造体に描画コマンドとして蓄えてる？　ようです。 <br> Liner Frame Bufferを使うか、描画コマンドを使って、書き込みモードをかえながら描画するのか、 <br> 白黒にするのか．．． <br> あまり複雑なことしても、他の部分を作る時間が無くなりますし。 <>
FreeDOS教徒<>osage<>03/02/26 23:48<> <a href="../test/read.cgi/tech/1042375466/430" target="_blank">&gt;&gt;430</a> <br> ピクセル描画をいまのところサポートする必要性はないんだし、 <br> 文字書き込みがきちんとできれば、他のところに挑戦していいんでない？ <br>  <br>  <br> いずれスクロールで頭を悩ますことになるんだろうけど（汗 <>
430<>sage<>03/02/27 00:30<> 文字書き込みはできるので、FreeDOS教徒 さんがおっしゃる通りなのですが、 <br> もう少しだけ、色々試してみて、できそうもなければ、他の部分を作ることにします。 <br> まだ、mallocもなく、バッファもスタックに確保してるだけなので．．． <>
デフォルトの名無しさん<>sage<>03/02/27 00:46<> <a href="../test/read.cgi/tech/1042375466/439" target="_blank">&gt;&gt;439</a> <br> この辺から作っていくと面白いと思うよ。 <br> ﾒｸﾞﾀｿは萌えで有名なんだけど、 <br> AAできるフォントが使えたりもしたしね。（モナーフォント？） <br>  <br> ひげぽんは足腰のしっかりした本格的なOSを作ろうとして <br> 肩肘張りすぎてる気がするな～。 <br> 何だかんだいって下馬評通りにバンバン進んでないし。 <br> 短期的には430様のアプローチの方が楽しそう。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/424" target="_blank">&gt;&gt;424</a> <br> 打倒M$だっつってるじゃん。 <>
デフォルトの名無しさん<>sage<>03/02/27 05:23<> <a href="../test/read.cgi/tech/1042375466/440" target="_blank">&gt;&gt;440</a> <br> 妥当M$は、たんにいいOS作るだけじゃむりなんだよなぁ…… <br> とか逝ってみる <>
デフォルトの名無しさん<>sage<>03/02/27 10:34<> <a href="../test/read.cgi/tech/1042375466/430" target="_blank">&gt;&gt;430</a> もう昔のことで覚えとらんのだが <br> VRAMへの書き込みが特定プレーンにそのまま書き込まれるように設定してやれば、98と同じように見えるので <br>  <br> グラフィックコントローラの設定　４（プレーン）回 <br> 640x480/8(byte)のコピー　４（プレーン）回 <br> ですむんじゃねーか <br>  <br> ライン毎とか８ドットごとでもいいけど <br>  <br> 仮にビットマップをpacked pixelでもってるなら、packed-&gt;planeへの変換はCPUでやる。 <>
430<>sage<>03/02/27 10:56<> 御教授ありがとうございます。 <br> プレーン0 を指定、640*480/8 byte を 0xA0000～ に書き込み、 <br> そして、プレーン0を指定、640*480/8 byte を 0xA0000～ に書き込み、 <br> ．．． <br> という方法は実際、やってみたのですが、最後に書いたプレーンの色しか表示されていないので、 <br> できないものかと思っていました。もう少し調べて設定ミスがないか探してみます。 <br>  <br> Liner Frame Buffer もわかりやすいサンプルが見つかったので、こちらの方法も視野に入れて <br> どうするか考えます。 <br> サンプルソース http://www.gameprogrammer.com/1-vbe.html <>
430<>sage<>03/02/27 10:59<> 二行目 プレーン0 → プレーン1 です。 <br> 書いたら、見直しているのですが(汗) <>
FreeDOS教徒<>osage<>03/02/27 17:04<> いちおうツッコミ入れとくけど、参考資料間違ってるぽ。 <br> もう一度きちんとグラフィックコントローラレジスタ周り見直してぽ。。 <br>  <br> ある意味すげーよ、これで動いてるのって（汗 <br> 手もとの資料をちとコピペしとくんで、これで試してみそ。 <br> ---- <br>  <br> Port 03C4 - シーケンサアドレスレジスタ <br> 以下に続くマップマスクレジスタの選択のために必要です。 <br>  <br> Port 03C5 index 02 - マップマスクレジスタ <br> マスクするマップを選択します。0でマスク、1で解除です。 <br> High &lt;- 0:0:0:0:I:R:G:B -&gt; Low (* I=輝度) <br>  <br> Port 03CE - グラフィックアドレスレジスタ <br> 以下に続くビットマスクレジスタの選択のために必要です。 <br>  <br> Port 03CF index 08 - ビットマスクレジスタ <br> マスクするビットを選択します。0でマスク、1で解除です。 <br> ビットマスクを有効にするには、あらかじめ読み取り動作を行う必要があります。 <>
430<>sage<>03/02/27 18:03<> &gt;&gt;FreeDOS教徒 様 <br> ご指摘ありがとうございます。 <br>  <br> port 0x03CF index0x01　色設定 <br> port 0x03CF index0x08　ビットマスク <br> と思っていたのですが、 <br> port 0x03C5 index0x02　色設定 <br> port 0x03CF index0x08　ビットマスク <br> だったのですか．．． <br>  <br> せっかくのアドバイスなのですが、Liner Frame Buffer を使った方法に成功したので、 <br> こちらで進めていく予定です。 <br>  <br> http://www.gameprogrammer.com/1-vbe.html　はよく読むと、 <br> Banked/Windowed Frame Buffer を使った方法のようです。でもかなり読みやすいので、 <br> 大部分はこちらを参考にできます。 <br>  <br> http://www.geocities.com/SiliconValley/Horizon/6933/vbe2.txt <br> こちらに、Liner Frame Buffer のサンプルがあります。 <>
FreeDOS教徒<>osage<>03/02/27 19:16<> <a href="../test/read.cgi/tech/1042375466/430" target="_blank">&gt;&gt;430</a> <br> &gt; http://www.gameprogrammer.com/1-vbe.html　はよく読むと、 <br> &gt; Banked/Windowed Frame Buffer を使った方法のようです。 <br> 最初タイトル見たとき「(ﾟДﾟ)ﾊｧ?VESA VBE 1.2でリニアフレームバッファ <br> なんてサポートしてたか？」とか思いましたが、その通りでしたか。。 <br>  <br> 資料のご提示ありがとうございます。 <>
デフォルトの名無しさん<>sage<>03/02/27 22:23<> とりあえず、Liner Frame Buffer 版を公開～ <br> ttp://www.geocities.co.jp/SiliconValley-PaloAlto/6802/os_05.zip <br> OSと呼ばれる機能は一つもありません。 <>
440<>sage<>03/02/27 22:40<> <a href="../test/read.cgi/tech/1042375466/448" target="_blank">&gt;&gt;448</a> <br> 乙～ <br>  <br> これ、うまくmonaとくっつけられないかな <br> お互いに足りない部分がうまく補完できる気がする <br> そうすれば面白いと思うんだけど <>
デフォルトの名無しさん<>sage<>03/02/27 22:58<> NWSOSが公開直後になぜ絶賛されたかというとGUIの完成度が高かったから。 <br> MEG-OSが評判になったのも萌えられるから。 <br> しょせん、下馬評なんてそんなもん。 <br>  <br> OS/430（仮称）がシングルタスクでGUIだけ突っ走っても、 <br> Windows 3.1や旧Mac OS並みにはなれるはず。。。 <br>  <br> が～んば！ <>
デフォルトの名無しさん<>sage<>03/02/27 23:14<> <a href="../test/read.cgi/tech/1042375466/449" target="_blank">&gt;&gt;449</a> <br> Monaのブートローダー周りを参考というより、流用の方が近いですが、 <br> こんな感じで、これからもお手本として参考にさせてもらうことになると思います。 <br> それと、グラフィックにこだわってみたいなあと思っていたのと、 <br> 参考にしてばっかりのMonaに少しでも、作っていない部分のサンプルを示して <br> お返しをという気持ちもありLiner Frame Bufferの使用のサンプルになればと思い <br> 作ってみました。 <br>  <br> 流用に値しないものかもしれないですが、ライセンスはMonaと同じにするので、 <br> よければどうぞ．．．&gt;Monaプロジェクトの皆様 <br>  <br> <a href="../test/read.cgi/tech/1042375466/450" target="_blank">&gt;&gt;450</a> <br> ありがとうございます。どこまで出来るかわかりませんがとりあえず頑張ります。 <>
FreeDOS教徒<>osage<>03/02/27 23:57<> いや、おもしろいです。見ててすごくタメになりました。 <br> ありがとうございます <a href="../test/read.cgi/tech/1042375466/430" target="_blank">&gt;&gt;430</a> <>
デフォルトの名無しさん<>sage<>03/02/28 06:06<> GUI-OSを作ってますがなにか？  <br> http://pc2.2ch.net/test/read.cgi/tech/1045907529/l50 <br>  <br> だってさ。 <br>  <>
デフォルトの名無しさん<>sage<>03/02/28 06:10<> OSASK荒れてるな。無意味な日給叩きが原因か？ <br>  <br> ところで最近、朝鮮生、じゃなかった超先生を見ないな。 <br> どこいった？ <br>  <br> 彼ならWindowがやってるみたいに、プロテクトモードでありながら <br> VGA-BIOSを叩くテクをご存知かもしれぬ。 <br>  <>
デフォルトの名無しさん<>sage<>03/02/28 08:09<> <a href="../test/read.cgi/tech/1042375466/454" target="_blank">&gt;&gt;454</a> <br> Window？ <br> NWSOS もやってるね。 <br>  <>
デフォルトの名無しさん<>sage<>03/02/28 10:08<> <a href="../test/read.cgi/tech/1042375466/454" target="_blank">&gt;&gt;454</a> <br> テクっていうか、仮想８６モード使えばいいだけ。 <br>  <br> だけっていっても結構大変だけど。 <br>  <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/02/28 10:46<> <a href="../test/read.cgi/tech/1042375466/456" target="_blank">&gt;&gt;456</a> <br> &gt;テクっていうか、仮想８６モード使えばいいだけ。 <br> 馬鹿な事をおっしゃらないで下さいませんか？ <br>  <br> そんあ程度で BIOS を呼び出せたら苦労しません。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/02/28 10:48<> 　度が過ぎた知ったかぶりさに、手が震えてまともに文字もまともに <br> 打てなかった（泣）。 <>
超先生＠ﾏﾌﾞﾗｳﾞ100円  </b>◆leaf/RYZgY <b><>sage<>03/02/28 11:51<> ＜後ろ頭＞y-~~~  <br> VGA-BIOS程度ならV86モードだけでOKでは？ <br> 特に割り込みも必要ないし。 <br>  <br> シングルタスクに限れば300行程度でV86 monitorを作れる。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/02/28 12:01<> <a href="../test/read.cgi/tech/1042375466/459" target="_blank">&gt;&gt;459</a> <br> 　他のタスクの動作を、しばらく完全に止めてしまうような動作でよければ <br> そんなに難しくは無いかもしれませんけれど、はっきり言って、そういうも <br> のと NWSOSを一緒にされたくは無いですね。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/02/28 12:16<> 　V8086モードのタスクを、未来永劫、システム全体で一つのみに <br> 限定する場合と、BIOS用のV8086タスク以外にも、V8086モードタスクを <br> 動かせるようにするのとでは全く話が違ってくるでしょう。 <br>  <br> 　前者のようなものだと、アドレスが1MB以下の領域を、全タスク共通 <br> にマッピングし、その領域では、線形アドレス＝物理アドレスという <br> 恒等写像にしてしまえば、BIOS呼び出し時にタスク切り替えして戻って <br> くる必要が全くなく、同じタスク空間で呼び出せるので簡単です。 <br>  <br> 　しかし、後者のようなものだと、BIOSタスクと、一般USE16タスクの干渉を <br> 避けるためには、BIOSタスク用には物理アドレスへの恒等写像を用い、 <br> 一般USE16タスクには、全く別の通常RAMを用いなければ成らないでしょう。 <br>  <br> （ちなみにページ切り替えを全く用いないセグメントモデルでは、 <br> 複数のV8086タスクを干渉させずに存在させるのは基本的に不可能に <br> なると思います。） <br>  <br> 　そうなってくると、BIOSを呼び出すときに、BIOSタスクへスイッチして <br> から戻ってくるような処理が必要になります。 <br> 　 <br> （タスクのラウンドを利用して出来ないわけでもないかもしれませんが、 <br> それなりの設計力を必要とし、決して簡単とはいえないでしょう。） <br>  <br>  <br> 　（簡単な方式を用いた場合、その後の成長性が確実に下がるでしょう。） <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/02/28 12:26<> <a href="../test/read.cgi/tech/1042375466/459" target="_blank">&gt;&gt;459</a> <br> 何度もしつこいようで申し訳ないですが、 <br>  <br> &gt;VGA-BIOS程度ならV86モードだけでOKでは？ <br> &gt;特に割り込みも必要ないし。 <br>  <br> これは分かりませんよ。 <br>  <br> 割り込みのリフレクトはやった方がいいと思います。 <br>  <br> 内部で VSYNC を待つために割り込みを使っていたり、タイミング取りに <br> タイマーを使っているかもしれませんし。 <br>  <br>  <br> 少なくとも、仮にブートもままならないような人ならば、これを簡単と <br> 言える資格はないと思います。 <>
名無したん＠ﾏﾌﾞﾗｳﾞ200円<>sage<>03/02/28 12:35<> Lﾀｿは最近誰彼構わず叩くのが好きみたいだね <>
デフォルトの名無しさん<>sage<>03/02/28 12:54<> ×他のタスクの動作を、しばらく完全に止めてしまうような動作でよければ <br> そんなに難しくは無いかもしれません「けれど、はっきり言って、そういうも <br> のと NWSOSを一緒にされたくは無いですね。」 <br>  <br> ○他のタスクの動作を、しばらく完全に止めてしまうような動作でよければ <br> そんなに難しくは無いと思います。 <br>  <br>  <br> ×V8086モードのタスクを、「未来永劫」、システム全体で一つのみに <br> 限定する場合と、BIOS用のV8086タスク以外にも、V8086モードタスクを <br> 動かせるようにするのとでは全く話が違ってくるでしょう。 <br>  <br> ○V8086モードのタスクを、「将来的にも」システム全体で一つのみに <br> 限定する場合と、BIOS用のV8086タスク以外にも、V8086モードタスクを <br> 動かせるようにするのとでは全く話が違ってくるでしょう。 <br>  <br>  <br> ×少なくとも、仮にブートもままならないような人ならば、これを簡単と <br> 言える資格はないと思います。 <br>  <br> ○「必要なし] <br>  <br>  <br> 以上、添削しました。 <>
デフォルトの名無しさん<>sage<>03/02/28 14:18<> &gt;そういうも のと NWSOSを一緒にされたくは無いですね。  <br> ﾜﾗﾀ <br> ｽｹﾞ-被害妄想 <br> 456のレス先見て見れ。 <br>  <br> だれもNWSOSの話題なんてしてねーよ <br> 自意識過剰もたいがいにしとけ <>
デフォルトの名無しさん<>sage<>03/02/28 14:31<> こういう人もいるんだね、ここ <br> 勉強になるなぁ <>
デフォルトの名無しさん<>sage<>03/02/28 14:49<> 変なのが寄ってくるからブチギレはやめれ。 <>
デフォルトの名無しさん<>sage<>03/02/28 18:41<> Lさんの能力はここの住人は認めてるんだから、 <br> 下らない*あげあしとり*に突っ込まれる文章は <br> 謹んでほしいですね。 <br> # 知らん人間が見たらどっちが厨か分からんだろう。 <>
デフォルトの名無しさん<>sage<>03/02/28 18:47<> OSを作ってみよう  <br> http://pc.2ch.net/test/read.cgi/os/1046271176/l50 <>
デフォルトの名無しさん<>sage<>03/02/28 18:49<> 能力があれば人間性はどうでもいいのかと小一時間(ｒｙ <br> そういう甘やかしは本人の為にもならんぞ。 <br>  <br>  <br> ってか、「あげあしとり」っていうか、LightConeがｹﾝｶふっかけてるように <br> しか見えん。 <br> まぁ、素でいやみったらしい口調の奴は現実に見かけるけどな。 <br> 現実なら胸の内でムカつかれておしまいってのが、2chだからストレートに <br> 叩かれてるだけ。 <>
デフォルトの名無しさん<>sage<>03/02/28 18:50<> しまった。468は釣りか？鬱 <>
デフォルトの名無しさん<>sage<>03/02/28 18:54<> いや釣りじゃないです。仕事終って早めに帰ったらこんなんだったんで <br> 私が欝になりそうであんなこと書きました。釣りに見えたらスマン。 <>
デフォルトの名無しさん<>sage<>03/02/28 19:51<> &gt; 　度が過ぎた知ったかぶりさに、手が震えてまともに文字もまともに  <br> &gt; 打てなかった（泣）。  <br> 自意識過剰、駄目の二乗 <br> （知ってる人いるかな...） <>
デフォルトの名無しさん<>sage<>03/02/28 21:27<> <a href="../test/read.cgi/tech/1042375466/473" target="_blank">&gt;&gt;473</a> <br> 三石琴乃 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/02/28 23:15<> 実機でのFD読み込み・書き込み成功しました。 <br> 読み込み完了の割り込みを待たずにDMACをストップしていたのが <br> 原因でした。 <br>  <>
455<>sage<>03/02/28 23:20<> 荒れてしまったか。申し訳ない。 <br> 申し訳ないので、少し言い訳をしていくことにする。 <br>  <br> 456 は自分ではないけれど、下に続いた組合せが悪かったかな。 <br> NWSOS の BIOS 呼び出し方法が凄いのは押さえている。 <br> そういう人も居るはずだし、そうでない人は放っておけば良いのでは？ <br>  <br> それで、454 に <br> 「誰も知らないようなことではないよ？」 <br> て事が言いたかったんだ。 <br>  <br> 基礎となる仮想8086モードは書籍にも載っている。 <br> そこから他の用件も満たしながら実装することと <br> 書籍を読んで分かった気になることは全く別問題だけれど。 <br>  <>
デフォルトの名無しさん<>sage<>03/03/01 00:05<> 何だかひげぽんが恐縮気味になってきた気がする。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/01 00:09<> FD読み込みですが <br> 実機ではうまくいくのですがbochsで <br> FD READ完了の割り込みがこない。。。 <br>  <br> うーん。bochs起動時のパラメータでも調べようかな。 <>
デフォルトの名無しさん<>sage<>03/03/01 00:51<> &gt;NWSOS の BIOS 呼び出し方法が凄いのは押さえている。  <br> 凄いと主張されてることは押さえている、だろ。 <br>  <br> 455が関係者で中身を実際に覗いたのなら別だがな <>
デフォルトの名無しさん<>sage<>03/03/01 01:00<> FDをBIOS経由でアクセスしてもマウスカーソルがこけないという話だから <br> かなり優秀な実装と考えていいのでは？ <br>  <br> 私のマシン全てでVESA関係の問題で起動できないので確認はできないが <br>  <>
４５６<>sage<>03/03/01 03:05<> なんか、仕事から帰ってきたらすごいことになってるな（ｗ <br> 名無しにまで牙をむき出すとは。。。 <br>  <br> 名無しの書き込みだから名誉も何もないのである意味どうでもいいんだけど、 <br> 一応弁解しておこうかな（ｗ <br>  <br> &gt; 少なくとも、仮にブートもままならないような人ならば、これを簡単と  <br> &gt; 言える資格はないと思います。  <br>  <br> ﾌﾟ、ブートくらい開始アドレス0x7c00で512バイト以下のプログラム作ってそいつで <br> カーネルなり、セカンドステージローダなりよびだす＊＊＊だけ＊＊＊じゃん（ｗ <br>  <br> Ｌって威張ってる割にはこれくらいのことで相当苦労したようだな。 <br> その他の細かいノウハウは試行錯誤するか、よく考えるか、ひげぽんのように <br> 礼儀正しく相談すればいくらでも手に入る。 <br> 一応、上で書いた情報だけで１日でプロテクトモードのローダに制御を移せましたが何か？ <br>  <br> VGA-BIOSの件もそうだとおもうがな。VGA-BIOSとFDD制御機能が干渉することは <br> 知らんかったので、その罠にははまるかもしれんけど、まじめに取り組めばクリアできる自信はある。 <br>  <br> Ｌは他人の文献とか余り読まないようだけど、自分以外人間のの能力を相当過小評価してるらしいな。 <br> ひげぽんの謙虚さを見習って欲しいよ、全く。。。 <br>  <>
４５６<>sage<>03/03/01 03:35<> プロテクトモードのローダじゃなくてカーネル（の替わり）の間違いだった。 <br> ついでに、「自分以外のの」も間違い。 <br>  <br> 強気な書き込みしてみたのにミスが二箇所も(´･ω･`)ｼｮﾎﾞｰﾝ <>
デフォルトの名無しさん<>sage<>03/03/01 05:28<> くっだらねぇ… <br> どっから見ても、揚げ足を取り合ってるだけだじゃん <br> 簡単だと思ってる香具師は簡単だと思ってれば良いし <br> 難しいと思ってる香具師は難しいと思ってれば良いじゃねぇの？ <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/01 09:07<> <a href="../test/read.cgi/tech/1042375466/481" target="_blank">&gt;&gt;481</a> <br> 　自慢になるので言わなかっただけで、私の場合、ブートなんて、半日も <br> かかりませんでした。 <br>  <br> 　今のMonaの様な状態になるのも数日でした。 <br>  <br> 　だからこそ、こんなに時間がかかっている人たちに、BIOSを呼び出せるか <br> どうか甚だ疑問なのです。BIOSを呼び出すのはそれなりに苦労しました。 <br> 是非やってみてください。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/01 09:11<> <a href="../test/read.cgi/tech/1042375466/481" target="_blank">&gt;&gt;481</a> <br> &gt;その他の細かいノウハウは試行錯誤するか、よく考えるか、ひげぽんのように <br> &gt;礼儀正しく相談すればいくらでも手に入る。 <br>  <br> うそを言わないで下さい。 <br>  <br> 実際に、2chで私が本当に必要とする情報を聞いても誰も答えてくれません <br> でした。というよりも、事実上、答えられる人が存在しなかったという <br> 事だと思ってます。 <br>  <br> 経験上、この辺で答えが返ってくるのは、「慣れ」の問題で誰でも習得できる <br> ような知識ばかりです。例えば、「Linuxでこういう事したい時どうするの？」 <br> といった類の質問には、大勢の人が質問者を誹謗中傷・罵倒しながらワンサカ <br> 答えますね。確かに（笑）。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/01 09:20<> &gt;その他の細かいノウハウは試行錯誤するか、よく考えるか、ひげぽんのように <br> &gt;礼儀正しく相談すればいくらでも手に入る。 <br>  <br> そもそも、全く逆さまですね。 <br>  <br> 「細かいノウハウ」というのは、「知識」ではないので優秀な人にしか <br> 答えられないし、考える事も出来ません。 <br>  <br> 貴方がおっしゃっているような、「0x7c00で512バイト」なんて情報の <br> 方が、2chで入手しやすい情報です。 <br>  <br> これは、「知識型」の情報なので、知っている人にはすぐに答えられる <br> からです。 <br>  <br> 例えば、ハード会社に勤めてる人なら、営業マンでも資料さえ読めば <br> 答えられるでしょう。しかし、資料がなければ全く分からない事です。 <br>  <br> 2chが有用なのはこういう部分ですね。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/01 09:25<> ちゃんとした証拠もあります。 <br>  <br> Monaのロジック部分が本質的に成り始めてから、higeponさんがつまづいた時、 <br> 突破口となるヒントや修正箇所を提示できたのは、ほとんどの場合、 <br> 超先生と、私のみでした。 <br>  <br> ここから得られる教訓は、私が質問しても答えられるのは、多くの場合、 <br> 超先生しかいないであろう、ということですね。 <br> つまり、私にとっては、2chで質問しても、ロジカルな部分やアルゴリズム的な <br> 部分に関しては、ほとんどの場合、意味がないと予想されてしまうのです。 <br>  <br> さっきも言いましたけど、「UNIXの特定のコマンドの使い方」などの <br> 情報は、2chでうまく手に入ると思います。 <>
デフォルトの名無しさん<>sage<>03/03/01 09:35<> 456もLもよー、どれくらいの期間で何が出来たとか、 <br> 簡単だの難しいだのとか子供みたいな争いはやめなさいってば。。 <br> みんなでﾏﾀｰﾘしようぜ。 <>
デフォルトの名無しさん<>sage<>03/03/01 09:38<> うんだ。２人ともつまらん口論はヤメロ <br> マタ～リ <br>  <>
デフォルトの名無しさん<>sage<>03/03/01 09:47<> 別に問題解決の場というわけではないのになぁ <br>  <br> たとえ無能に見えたとしても、自分の役に立たなくても <br> マイナーな分野で自分と同じ方面に興味を持っている人がそれなりにいる <br> ということが窺えるだけでも価値はあると思うが <br>  <>
デフォルトの名無しさん<>sage<>03/03/01 10:28<> あとはLスレでやれよ。 <>
デフォルトの名無しさん<>sage<>03/03/01 11:06<> てか、もうL来なくていいよ <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/01 11:29<> <a href="../test/read.cgi/tech/1042375466/492" target="_blank">&gt;&gt;492</a> <br> 　そう思われるんでしたら、今後一切、NWSOSに関する事も、私とすぐに分かる <br> ような表記(Lタン、LightCone)も、ここに書かないで下さい。 <br>  <br> 　「NWSOSで出来ているから簡単にできるはず」なんて論調で語られる事が <br> 多いのが非常にうっとうしいのです。 <>
デフォルトの名無しさん<>sage<>03/03/01 11:41<> このスレを検索してみても <br> 特に「NWSOSで出来ているから簡単にできるはず」なんて論調で語られている様子はないようですが？ <br> 本当に被害妄想じみてきていますよ <br>  <br>  <br>  <>
デフォルトの名無しさん<>sage<>03/03/01 12:13<> <a href="../test/read.cgi/tech/1042375466/493" target="_blank">&gt;&gt;493</a> <br> おいおい…ただでさえ春厨が好みそうな事言ってるのにまだ言うかね <br> 「うっとうしい」事が分ったら進んでやると思うんだけどなー <br> 邪魔する為に。 <>
４５６<>sage<>03/03/01 12:28<> 言いたい事は山ほどありますが皆さんのご指摘の通りつまらん口論で、続けるとスレが荒れるので止めておきます。 <br> 昨夜はちょっと酔っていた事もあり、無神経ですいませんでした。 <>
デフォルトの名無しさん<>sage<>03/03/01 12:35<> なんか一連のやりとり見てるとやおいサークルのＣＰ論争みたいだ <>
デフォルトの名無しさん<>sage<>03/03/01 12:38<> <a href="../test/read.cgi/tech/1042375466/456" target="_blank">&gt;&gt;456</a> <br> 話のわかる人で良かったyo! <br> 499からは、 <br> 「独自にOSを作っているまたは、作ろうとしている人たちのためのスレッド」 <>
デフォルトの名無しさん<>sage<>03/03/01 12:38<> 　　　　　　　　　　　　　　　　ﾌﾟｼｨｰ  <br> 　　　　　　　　　　　;　､ 、; , ; ､　､  <br> 　　　　　　　　　　　'⌒`､lili,'⌒`  <br> 　　　(`γ')　　　　　　　 |lili|  <br> 　　　冫/"　　　　,..-ｰ―,lili,―-､  <br> ..　　/ ;;|　　　　／;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ヽ  <br> 　　 | ;;;;ヽ, 　／;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;l　　　 ／￣￣￣￣￣￣￣￣￣￣￣  <br> 　　 |　;;;;;;`ｰ';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(,,ﾟДﾟ)l　　＜　そう、目クジラを立てるな  <br> 　　 `､＿＿＿＿＿＿＿,,,....つ--つ　　　＼＿＿＿＿＿＿＿＿＿＿＿  <br> 　　　　`ー‐---､,,,____　　　 ,.,., ,.,,,ﾉ  <br> 　　　　　　　　　　　　"'''''''''''し'''J  <br>  <>
デフォルトの名無しさん<>sage<>03/03/01 13:23<> <a href="../test/read.cgi/tech/1042375466/498" target="_blank">&gt;&gt;498</a> <br> 「独自にOSを作っている人たちを応援するスレッド」もな。 <br>  <br> 500ｹﾞﾄｰ <>
デフォルトの名無しさん<>sage<>03/03/01 13:30<> <a href="../test/read.cgi/tech/1042375466/494" target="_blank">&gt;&gt;494</a> <br>  <br> <a href="../test/read.cgi/tech/1042375466/454-456" target="_blank">&gt;&gt;454-456</a> あたりを見て勘違いしてるんじゃ <>
デフォルトの名無しさん<>sage<>03/03/01 13:32<> やおい穴がどこにあるかでもめているのかね <>
デフォルトの名無しさん<>sage<>03/03/01 13:38<> ここは独自にOSを作っている人の作業をLたんが妨害するスレッドになりました。 <>
デフォルトの名無しさん<>sage<>03/03/01 13:51<> 'K'+1 ﾀﾝもがむばれ。 <>
FreeDOS教徒<>osage<>03/03/01 13:52<> <a href="../test/read.cgi/tech/1042375466/503" target="_blank">&gt;&gt;503</a> <br> ﾜﾛﾀ <>
デフォルトの名無しさん<>sage<>03/03/01 14:58<> 基本的に評価は他人がするもので、自分がするものじゃない。 <br> 他人に評価させたくないなら自慢すんなよ。 <br> 誤解されるといけないが別にオプソにしろっつってんじゃないよ。 <br> NDAって手もある。 <>
わたもち<>sage<>03/03/01 15:17<> いつまでもデフォルトの名無しさんにしておくと、 <br> 呼びにくいと思うので、これから、わたもちと名乗るので、よろしくです。 <br>  <br> OS的な機能の実現に割り込みがほとんどは関係してくると思うので、 <br> 慎重に、割り込みを作りたいと考えています。 <br>  <br> スタックの使用は下のように使用される。 <br> |　　　　　　　　　　　　　   | <br> |割り込み前の使用スタック↑   | <br> |---------------------------| <br> |EFLAG(4bytes)　　　       　| <br> |---------------------------| <br> |CS(4bytes:下位2bytes使用)　 | <br> |---------------------------| <br> |EIP(4bytes)　　　           | <br> |---------------------------| <br> |ErrorCode(4byte)       (*) | <br> |---------------------------| <br> |割り込み後の使用スタック↓   | <br> |　　　　　　　　　　　　     | <br> (*)エラーコードをpushする例外としない例外がある。 <br>  <br> あと EAX,EBX,ECX,EDX,ESI,EDI,EBP,DS,ES,SS,FS,GS <br> （EFLAG、CS、EIP以外の一般レジスタです）は、 <br> 割り込み前の使用状態のままと考えていいでしょうか？ <br> 御教授ください。 <>
わたもち<>sage<>03/03/01 15:18<> あと、上のことが正しいとすると、 <br> タスク切り替えを行う場合、割り込みハンドラをCPL=3のコードセグメントに配置させて、 <br> そこで、タスクのスケジューリングを行い、次に実行するタスクへのCS EIP に、 <br> スタック上の CS EIP を書き換えて、iret でマルチタスク実現というのを考えたのですが、 <br> どうでしょう？ <br> 特権命令は、タスクゲートを使って、CPL=0にして特権命令を実行後、 <br> 元に戻るということにしようかなと思っています。 <br> 問題点等ご指摘ください。 <>
デフォルトの名無しさん<>sage<>03/03/01 15:36<> <a href="../test/read.cgi/tech/1042375466/508" target="_blank">&gt;&gt;508</a> <br> 当然、CS:EIP意外のレジスタの内容も切り替えなきゃいけないけど、 <br> それらをコピーするよりはSS:ESP切り替えた方が簡単なので、漏れはそうしてまつ。 <br> ひげぽんはどうやってたっけ？ <>
デフォルトの名無しさん<>sage<>03/03/01 15:57<> 荒らしうぜえよ。どっかいけ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/01 16:15<> <a href="../test/read.cgi/tech/1042375466/509" target="_blank">&gt;&gt;509</a> <br> そんなかんじです。 <br> プロセス・スレッドはこれから実装しなおします。 <>
わたもち<>sage<>03/03/01 16:20<> 先にレスされてしまいました。 <br> Monaのソース読んでなかったのに今気づいた．．． <br> sourceforge.jp が落ちてるみたいなので、手持ちのものを見てみると、 <br>  <br> スタックから取り出して、現在のレジスタを保存、 <br> 次のプロセスの以前保存したレジスタをレジスタにロード <br>  <br> 私が考えていたものとほとんど同じだ。 <br> またいらない質問してしまったようです。すみません。 <br>  <br> SS:ESP切り替えというとどういうものなんでしょう？ <br> 良ければ御教授ください。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/01 16:21<> pusha <br> esp切り替え <br> popa <br> ということですかね。 <>
わたもち<>sage<>03/03/01 16:28<> やっぱりスタックに保存ということだったのですね。 <br> コピーするよりSS:ESP切り替えとあったので、？？と思っていました。 <br> どうもありがとうございます。 <>
509<>sage<>03/03/01 18:04<> <a href="../test/read.cgi/tech/1042375466/513-514" target="_blank">&gt;&gt;513-514</a> <br> 確かにスタックに「コピー」してまつね。 <br> 誤解させるような表現ｽﾏｿ <>
わたもち<>sage<>03/03/01 19:02<> <a href="../test/read.cgi/tech/1042375466/509" target="_blank">&gt;&gt;509</a> <br> いえいえ、こちらこそアセンブラなんて全然やったことがなかったもので、 <br> アセンブラ使いでおられる方から見れば、 <br> このぐらいですぐ気づくものだと思いますし。 <>
デフォルトの名無しさん<>sage<>03/03/01 19:30<> Linux板の悪口がちょっとあったので（誰とは言わんが）。 <br> あそこの板で上がっているスレは中傷通りの状況だけど、 <br> アプリ開発者も結構いて、ドキュメントされていない質問には <br> 丁寧な回答があったりするんだよね。 <br> カーネルコアな人（らしい人）はあまり来ていないみたいだけど、 <br> Linux板の話題の大半はLinuxカーネル以外の話だから仕方が無いです。 <br> カーネルに興味がある人はYLUGのほうが盛んかな？ <br> # スレ違いかつ板違いスマソ。 <>
デフォルトの名無しさん<>sage<>03/03/01 20:41<> <a href="../test/read.cgi/tech/1042375466/517" target="_blank">&gt;&gt;517</a> <br> 召喚の呪文唱えないでくれよ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/02 00:04<> 前に実装したマルチタスクもどきを <br> きちんと書き直して、カーネルスレッドを実現しようと <br> 計画中です。 <br>  <br> それにしてもわたもちさんは、進むのが早い(´ﾍ｀；) <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/02 00:13<> あとはそろそろ気合を入れて <br> メモリ管理をきちんと実装しないといけませんね。 <br>  <br> ページングはなんとしても実現したいです。 <br> ちょっとボリュームが大きいですが何とかやりたい。 <>
わたもち<>sage<>03/03/02 00:38<> いえいえ。遅いですよｗ <br> 実際に作り始めるのに大分、時間かかりましたし。 <br> まだ、割り込み部分に少し手をつけたくらいです。 <br>  <br> ページングといえば、私はメモリ保護でも使おうと思っています。 <br> PTE(ページテーブルエントリ)のU/S、R/Wビットを利用したものになる予定。 <br> いつになるやら．．． <>
デフォルトの名無しさん<>sage<>03/03/02 01:00<> ＞ぽんたん <br> CVSではないソース＆バイナリってどこかにおいてあるんでしょうか？ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/02 01:11<> <a href="../test/read.cgi/tech/1042375466/522" target="_blank">&gt;&gt;522</a> <br> 最新リリース(といっても古いですが) <br> http://sourceforge.jp/projects/mona/files/ <br> にダウンロード可能なソースとカーネルイメージがおいてあります。 <br>  <br> ソースに限れば <br> http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/mona_v1.0/ <br> でdownload tarballでダウンロードできます。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/02 01:41<> 大きく誤ってそうだったら突込みをお願いします。 <br>  <br> thread#yieldは、ソフトウェア割り込みで <br> カレントスレッドのコンテキストをセーブ後 <br> runキューからはずして、どこか別のキュー(sleep?) <br> でスケジューラー起動。 <br>  <br> スケジューラーはそうすると <br> yieldまたは、タイマ割り込みで起動でいけそう。 <br>  <br> ソフトウェア割り込みでやるなら <br> 呼び出し規約を定めて(レジスタに設定する値等）を <br> システムコールのようにしたらいいのかな。 <br>  <br> OSASKスレッドでシステムコールについて熱い議論があったけど <br> そんなレベルには到底いけそうにないなあ。(しばらくの間) <>
デフォルトの名無しさん<>sage<>03/03/02 02:18<> <a href="../test/read.cgi/tech/1042375466/524" target="_blank">&gt;&gt;524</a> <br> runキューの末尾に移すようにすればいいんじゃない？ <br>  <br> システムコールの実装方法の方は、余り気にすると煮詰まってしまうから <br> 気にしすぎるのもまずいけど、一応OSASKすれには目を通しておくといいかもね。 <>
デフォルトの名無しさん<>sage<>03/03/02 11:06<> <a href="../test/read.cgi/tech/1042375466/524" target="_blank">&gt;&gt;524</a> <br> OSASKスレの話は、システムコールの実装ということに関しては、 <br> あんまり参考にならない様な気がする。 <br> x86ならINT nで実装しないとCPL上げられないし。 <br>  <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/02 11:45<> <a href="../test/read.cgi/tech/1042375466/526" target="_blank">&gt;&gt;526</a> <br> 特権レベルを上げるには、intとコールゲートの二種類あるんですが、 <br> Windows/Linux/NWSOS のどれもがintらしいです。 <br>  <br> コールゲートなら、スタック渡しの際に外側スタックから内側スタックへの <br> 0～31 DWORDの自動コピーできるメリットがあるのに、intが使われる理由は <br> なんなのでしょうか。 <br>  <br> intは、命令長が短いのですが、それだけが利点でしょうか？ <br>  <br> 私なりの推測では、intの最大のメリットは、割り込み禁止可能なことです <br> （IDTが「割り込みゲート」になっているベクタ番号には、intは割り込み <br> 禁止でハンドラに突入してくれます。）。 <br>  <br> CALL GATEだと、外側レベルから内側レベルに変わった直後にどうやっても <br> 割り込みENABLE期間が生じてしまいます。これは非常に大きな問題です。 <br>  <br> OSを作っていくと、「全ての」レベル遷移時に割り込み禁止の状態で何かを <br> やっておきたいことはよくありますので。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/02 12:18<> <a href="../test/read.cgi/tech/1042375466/525" target="_blank">&gt;&gt;525</a> <br> こんにちは <br> &gt;runキューの末尾に移すようにすればいいんじゃない？ <br> そうですね。waitや、sleepはとりあえずなしで <br> 実装してみるのが簡単そうですね。 <br>  <br> &gt;OSASKスレの話は、システムコールの実装ということに関しては、 <br> &gt;あんまり参考にならない様な気がする。 <br>  <br> ちょっと私には難しすぎました（笑） <br>  <br> <a href="../test/read.cgi/tech/1042375466/527" target="_blank">&gt;&gt;527</a> LightConeさん <br> &gt;CALL GATEだと、外側レベルから内側レベルに変わった直後にどうやっても <br> &gt;割り込みENABLE期間が生じてしまいます。これは非常に大きな問題です。 <br>  <br> なるほどこれは知りませんでした。 <br> 確かに割り込まれた痛い処理というのは存在しますね。 <br> 勉強になります。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/02 12:21<> 作ってみようスレッドを見て思ったのですが <br> 画面への出力もシステムコールとしたほうがよさげですね。 <br>  <br> ロック機構も考えないと。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/02 12:53<> 個人的に難しく感じて、その後自分なりに解決したようなことを書いておきま <br> したのでご覧下さい。まだ僅かですが、ご参考になれば幸いです。 <br> ttp://homepage2.nifty.com/nowsmart/Japanese/HowToCreateOS.htm <br> ttp://homepage2.nifty.com/nowsmart/Japanese/NWSOS_Stack.htm <br> ttp://homepage2.nifty.com/nowsmart/Japanese/Address.htm <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/02 13:03<> <a href="../test/read.cgi/tech/1042375466/530" target="_blank">&gt;&gt;530</a> LightConeさん <br>  <br> &gt;個人的に難しく感じて、その後自分なりに解決したようなことを書いておきま <br> &gt;したのでご覧下さい。まだ僅かですが、ご参考になれば幸いです。 <br>  <br> すばらしいです。 <br> 私が将来つまづきそうなところが満載でした。 <br> ブックマークさせていただきます。m(__)m <>
わたもち<>sage<>03/03/02 14:13<> &gt;&gt;LightCone様 <br> まだ、割り込みハンドラの実装で、エラー続出レベルの私には、 <br> 遠い話ですが、きっと役に立つと思います。 <br> どうも、有難うございます。 <br>  <br> C言語はやっぱり向いていないなぁと感じる今日この頃ｗ <br> Javaが懐かしい．．．(泣) <>
デフォルトの名無しさん<>sage<>03/03/02 14:30<> <a href="../test/read.cgi/tech/1042375466/528" target="_blank">&gt;&gt;528</a> <br> そうですね。waitや、sleepはとりあえずなしで  <br> 実装してみるのが簡単そうですね。  <br>  <br> 一般的には <br> 　run:　　 現在CPUを使用中 <br> 　wait:　　他のプロセスがCPUを使ってるので自分の番まで待機中 <br> 　sleep:　ファイル入出力待ち・プロセス間通信待ちなどの外部イベント待ち <br> ってことなので、runとwaitは必須。 <br> sleepは他のプロセスやFDD等の外部デバイスとの通信をしなきゃ不必要かも。 <>
わたもち<>sage<>03/03/02 14:37<> と、嘆いても仕方が無いので、 <br>  <br> Waba(Javaサブセットの組み込み用インタプリンタ) <br> ttp://www.wabasoft.com/ <br> ttp://www.cc.yamaguchi-u.ac.jp/~shingo/WabaWorld/index.html <br>  <br> これを、そのうち載せたいなと考えています。 <br> スピードは気にしないでください．．． <>
デフォルトの名無しさん<>sage<>03/03/02 16:04<> <a href="../test/read.cgi/tech/1042375466/527" target="_blank">&gt;&gt;527</a> <br> 割り込み禁止にする必要があるかどうかはOSの設計次第です。 <br> FreeBSDのシステムコールや例外はトラップゲートだし、 <br> NoNameのシステムコールや例外もトラップゲートです。 <br> 反対にEseBTRONというOSではシステムコールや例外は割り込みゲートです。 <br> この違いは割り込み処理をプロセスのコンテキストの延長と見るか、 <br> 独立したコンテキストとみるかの違いでしょう。 <br> NWSOSの場合はどうして割り込みゲートを使っているのでしょうか？ <>
デフォルトの名無しさん<>sage<>03/03/02 16:20<> 実はL様はK氏より他人に親切かもしれない、と思ってみるテスト <br> 厳しいお言葉もライオンが子供を谷に突き落とすようなものかも... <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/02 18:36<> <a href="../test/read.cgi/tech/1042375466/535" target="_blank">&gt;&gt;535</a> <br> &gt;NWSOSの場合はどうして割り込みゲートを使っているのでしょうか？ <br>  <br> IA32は、もともとの設計では、内側レベルを呼び出して、外側レベルへ戻って <br> くることしかサポートされていません。ひとまず、この呼び出し方向を <br> 「順方向」と呼ぶことにします。 <br>  <br> NWSOSでは、「逆方向」の呼び出しもサポートしています。 <br>  <br> IA32では、TSSにある各レベルのスタックポインタが遷移時に自動的に変更 <br> される事は有りませんので、逆方向に呼び出してまだ帰ってこない間に、 <br> 別のシステムコールを呼び出すと、レベル0のスタックが上書きされてしま <br> います。 <br>  <br> これを避けるためには、レベル遷移時する時は必ずTSSにあるスタックポインタ <br> を調整する必要があります。 <br>  <br> その間、どうしても割り込みを禁止する必要があると思います。 <br>  <br> 「割り込み禁止」というと、リアルタイム制を損なう感じがするかもしれま <br> せんが、レベル遷移時にはもともと僅かではありますが、CPU内部で割り込み <br> 禁止期間がありますので、その延長と考えれば、その期間が少し長くなった <br> と考えることが出来ます。 <>
デフォルトの名無しさん<>sage<>03/03/02 19:21<> なるほど「逆方向」の呼び出しですか。 <br> 面白そうですね。非常にためになるお話でした。 <br> よろしければ「逆方向」の呼び出しがOSの中でどういう風に <br> 使われているかもついでに教えていただけませんでしょうか。 <br> NWSOSのページの情報からデバドラはDPL1で動くみたいなので、 <br> カーネル（DPL0）からデバドラを呼び出す時に使ったりするので <br> はないかと推測しているのですが。 <>
デフォルトの名無しさん<>sage<>03/03/02 21:31<> <a href="../test/read.cgi/tech/1042375466/446" target="_blank">&gt;&gt;446</a> <br> plane pixel方式のノウハウなんてのはDOS時代の古代の技術だから <br> 今から覚えるよりとっととpacked pixelで進めるのは良い判断と思われ <br>  <br> しかしANDしてORみたいなplane pixelの古代の技術が <br> VESA & packed pixelモードで失われたかと思ったら <br> windows GDIで復活し、 <br> DirectDraw & ColorKEYで再び失われたと思ったら <br> DirectDrawより自力描画のほうが速いよ！となって条件分岐より数ピクセルまとめてANDしてORが復活し <br> DirectX8(7だっけか？）で2Dでもポリゴン&アルファチャンネルだ！となって再び失われつつあるが <br> いつ復活するかわかったものでないので基本として押さえとくのはいいかも <br>  <>
わたもち<>sage<>03/03/02 22:33<> <a href="../test/read.cgi/tech/1042375466/539" target="_blank">&gt;&gt;539</a>さん <br> 描画ライブラリの作成が簡単になるようにということで、 <br> Packed Pixel形式が使える方を選択しましたが、こちらで良かったようで <br> 一安心です。ありがとうございます。 <br>  <br> Packed Pixel、Plane Pixel形式、世代交代が激しいようですね．．． <br> この方面もさっぱりわからないので、参考になります。 <>
デフォルトの名無しさん<>sage<>03/03/03 01:25<> <a href="../test/read.cgi/tech/1042375466/535" target="_blank">&gt;&gt;535</a> <br> もれは例外と割り込みは別の概念だと思う <br>  <>
名無したん＠お嬢<>sage<>03/03/03 14:03<> ﾒｸﾞﾀｿもPacked Pixel実装してみたらフォント描画が禿しく単純になったょぅ。。。 <>
わたもち<>sage<>03/03/03 14:30<> でしょ～ <br> プレーン方式を使ってた時は、私なんかちょっとした描画でも混乱してました。 <br> タイマー、キーボード割り込み実装したので、簡易マルチタスク機能(というか、 <br> ほとんどスレッド程度なんだけど．．．)をつけたらアップする予定です。 <>
名無したん＠お嬢<>sage<>03/03/03 14:44<> と思ったけどﾒｸﾞﾀｿのﾌｫﾝﾄ描画は事前処理がいろいろあるから複雑に見えるだけで <br> 描画ループはﾊﾟｯｸﾄの方が複雑かもしれん・・・ <br>  <br> Packed PixelはBitBltで真価を発揮しそうやね <br>  <>
わたもち<>sage<>03/03/03 14:55<> １byteで、８ドットというのが、慣れてないためか混乱してしまいます。 <br> 今まで、Packed形式しか使ったことが無かったもので．．． <br>  <br> &gt;Packed PixelはBitBltで真価を発揮しそうやね <br> ですね。 <br>  <br> レスが大阪弁ですけど、大阪人ですか？ｗ <>
名無したん＠お嬢<>sage<>03/03/03 15:00<> お嬢は無国籍DAYOヽ(｀ー´)ノ <>
わたもち<>sage<>03/03/03 15:14<> 宇宙人？とか言ってみるテスト <>
デフォルトの名無しさん<>sage<>03/03/03 23:12<> 前々から思っていたのだが、ディスク上にファイルシステム構築するのではなくて、 <br> 今では256MB～あるメモリ上にファイルシステムをエミュレートできないのかな？ <br> でも、作成したファイルなどは再起動したら消失してしまうだろうが。。。 <br>  <br> 検討はずれのこといってたらごめんなさい。 <>
デフォルトの名無しさん<>sage<>03/03/03 23:17<> <a href="../test/read.cgi/tech/1042375466/548" target="_blank">&gt;&gt;548</a> <br> RAMDISK? <>
デフォルトの名無しさん<>sage<>03/03/03 23:20<> <a href="../test/read.cgi/tech/1042375466/549" target="_blank">&gt;&gt;549</a> <br> RAMDISKって聞いたことあります。 <br> やっぱり、二次記憶のディスクより、相当高速アクセスできるんですよね・・？ <>
わたもち<>sage<>03/03/03 23:22<> <a href="../test/read.cgi/tech/1042375466/548" target="_blank">&gt;&gt;548</a>さん <br> いえ、私はそういう方向で行こうかな～と思っています。 <br> やっぱり新しいハードディスクはなかなか用意できないということで、 <br> すべてフロッピーディスクで済むようにと考えています。 <br> 保存したければ、終了時にフロッピーに書き込みでもいいかなと思います。 <>
デフォルトの名無しさん<>sage<>03/03/03 23:27<> <a href="../test/read.cgi/tech/1042375466/548" target="_blank">&gt;&gt;548</a> <br> unix系だとmfsってよばれててインストーラなどで使われてることが多い。 <br> 作っておくと後で役に立つ可能性も高いので、最初に実装するのもいいかもね。 <>
デフォルトの名無しさん<>sage<>03/03/03 23:28<> <a href="../test/read.cgi/tech/1042375466/551" target="_blank">&gt;&gt;551</a> <br>  <br> 最近ではネットワークも拡大・高速化してますので、 <br> たとえ、1FDのOSであっても、RAMDISKを使えば、ネットから数十MB <br> の動画ファイルをダウンロードして観ることも可能になりますね。 <br> （ネットワーク対応、大容量RAMが必須になりますが。） <br>  <br> 結構魅力的かも。。。 <br> そういえば、RAMDISKでもFATとかいうのかなぁ。。。 <>
デフォルトの名無しさん<>sage<>03/03/03 23:38<> mfs=メモリーファイルシステムでしたか。。。 <br>  <br> UNIX系では/tmpとかに使われてるみたいです。 <>
わたもち<>sage<>03/03/03 23:39<> 実装方法はまだ全然考えていません。 <br> その頃になれば、色々調べて実装したいと思います。 <br>  <br> &gt;たとえ、1FDのOSであっても、RAMDISKを使えば、ネットから数十MB <br> &gt;の動画ファイルをダウンロードして観ることも可能になりますね。 <br> 夢を膨らませてもらうのは、非常に嬉しいのですが、 <br> あまり期待しすぎないでくださいｗ <>
デフォルトの名無しさん<>sage<>03/03/03 23:40<> packed時代のplaneテクその２ <br>  <br> planeだと8ドット単位の処理が基本になる。それ以外だと両端と中央の処理を分けたり、シフトしたりと「複雑」になる。 <br> packedだと1pixelに1回でアクセスできて楽、かというと、速度を考えると話はそこで終わらない。 <br>  <br> 例えば8bit/pixelで考える。フツーならbyte*で処理するところだ。 <br> これを例えば32bit/4pixelと考えてuint32*(適宜読み替え)で処理する。 <br> そーするとplaneと同じく複雑になるが、メモリアクセスが1/4になる。キャッシュしない（メモリアクセスの遅い）VRAMにおいては、この差は大きい。 <br> トータルでは４倍-「複雑な処理部分」の速度だ． <br>  <br> 全ての描画命令に「複雑な処理」をつけるのはウザいが、blitやfillなど多用されるものにつければ効果は大きい。 <br>  <br> #OSカーネルの話と激しくズレてるが <>
わたもち<>sage<>03/03/03 23:54<> <a href="../test/read.cgi/tech/1042375466/556" target="_blank">&gt;&gt;556</a>さん <br> 御教授ありがとうございます。 <br>  <br> &gt;OSカーネルの話と激しくズレてるが <br> 気にしないでください。 <br>  <br> 実は、Graphics_cls でその手は使っています。 <br> 最初は、素直に byte* へキャストしていたのですが、 <br> 強引に unsigned int* へキャストしてみたら、 <br> 問題なく動いたので、Java等を使っていた私にしたら、 <br> こんなのありですか．．．な感じでしたｗ <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/04 00:16<> 仮想ページに割り当てるための物理ページが足りなくなった場合にページアウト <br> すべき物理ページを選択するアルゴリズムについて悩んでいます。 <br>  <br> 基本的に、LRU方式, ワーキングセット方式, FINUFO方式があるようですが、 <br> FINUFO方式が選択が一番高速になると思います。 <br>  <br> しかし、この中で一番理想的なのはワーキングセット方式なのですが、 <br> 「ワーキングセット」を高速に求めるアルゴリズムが存在するのかどうか <br> 分かりません。 <br>  <br> どなたかアドバイスできる方いらっしゃれば、是非教えてください。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/04 00:23<> 簡易カーネルスレッド実装とともに <br> システムコール実装テストをしようと目論んでいます。 <br>  <br> システムコール呼出し手順はこんな感じで考えています。 <br> ■ユーザーモード想定 <br> (1)システムコール用構造体に引数を設定 <br> (2)(1)の構造体へのポインタをレジスタにセーブ <br> (3)int <br> ■ここからカーネルモード想定 <br> (4)レジスタから構造体へのポインタを取得(必要であればカーネルからアクセス可能なように変換) <br> (5)引数妥当性検討(今回はここは軽め？） <br> (6)処理実行 <br> (7)必要であればリスケジューリング <br>  <br> システムコール自体はシステムコール構造体で管理しようと思っています。 <br> 引数の数・前処理・後処理・システムコール実体など。。。 <br>  <>
デフォルトの名無しさん<>sage<>03/03/04 00:59<> <a href="../test/read.cgi/tech/1042375466/559" target="_blank">&gt;&gt;559</a> <br> 引数がレジスタで渡せるうちはレジスタで渡したほうがいいんじゃないかな <br> 将来的に仮想メモリをサポートして、(2)と(3)の間にtask switchがおきて(1)がswap outしたとすると、 <br> (5)の前にswap inする必要がある。少なくともチェックは必要。 <br> まあイマドキのCPUなら無視できる負荷かもしれんけど <br>  <>
デフォルトの名無しさん<>sage<>03/03/04 01:24<> <a href="../test/read.cgi/tech/1042375466/553" target="_blank">&gt;&gt;553</a> <br> まったくｽﾚ違いで恐縮であるが、 <br> http://www.jumptec.de/product/data/emb_int/webasdisk/webasdiske.htm <br> みたいなものを使えば、OSのデバッグは楽チンになるのだろうか。 <>
デフォルトの名無しさん<>sage<>03/03/04 01:31<> <a href="../test/read.cgi/tech/1042375466/558" target="_blank">&gt;&gt;558</a> <br> ちょいと調べてみたんだが「ワーキングセット方式」つーのは <br> 突き詰めると実装はLRU（またはその近似）と同じ、という気がする <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/04 01:50<> <a href="../test/read.cgi/tech/1042375466/562" target="_blank">&gt;&gt;562</a> <br> 　言葉の遊びみたいになってしまいますが、「OS論」と呼ばれる学問では、 <br> 「LRU方式」と「ワーキングセット方式」とは、一応区別されていて、 <br> いずれも、「最も最後にアクセスされたページをページアウトの候補」 <br> とすると言う点は同じなんですが、前者は記録に用いられる時間が <br> 「システム共通時間」なのに対し、後者では「タスクローカルな時間」 <br> である点と、ワーキングセットアルゴリズムの場合、最近の <br> 「利用頻度（N回分の調査記録を利用)」も考慮されるが異なって <br> います。 <br>  <br>  <br> なお、「システム共通時間」で測定する場合、タスクの「活動度」が低いと <br> メモリアクセスがほとんどされていないように見えてしまうので、不公平に <br> ページアウト対象になりやすくなってしまうのではないでしょうか。 <br>  <br> 逆に、「タスクローカルな時間」で考慮されるならば、活動度が低くても <br> 「活動している時間に対するそのページにアクセスした時間比率」が <br> 中心的な役割を持ってくるため、そういう問題が起こりにくくなると <br> 考えられます。 <>
デフォルトの名無しさん<>sage<>03/03/04 01:55<> <a href="../test/read.cgi/tech/1042375466/562" target="_blank">&gt;&gt;562</a> <br>  <br> ワーキングセットの推定をするには将来の処理の動きを読まなきゃいけないけど、 <br> それをするには処理終了までのシュミレーションをしなきゃならないけど、 <br> それは計算機にさせるべき処理そのものなので、それが完了した時点でワーキングセットの <br> 推定は無意味になるので、原理的に無理。 <br> つまり、計算量の問題ではない。 <br>  <br> ってことで、現実的な解法として過去の挙動からワーキングセットを推定する方法が <br> いくつか提案されているけど、その一つがＬＲＵ方式。 <br>  <br> って、説教たれてる割には、ＬＲＵ方式の効率的な実装方法がわからなくて悩み中。 <br> 処理時間、メモリ使用量、ＬＲＵの厳密さ、これらの三つのトレードオフを巧く処理できない。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/04 01:58<> 　今考えている話は、仮想記憶における、「置換アルゴリズム」と言われる <br> ものですが、日本のOS研究では、ネットや本で軽く見る限りですが、 <br> 「なるべく最適な廃棄ページを見つけるアルゴリズム」、に対して関心 <br> が行っているようです。 <br>  <br> 　しかし、物理メモリが大量に搭載された現状で、実際にOSを作る際には、 <br> 「如何に高速にページの使用統計を取るか」の方が重要の様に思います。 <br>  <br> 　例えばの話、IA32のOSでは、タイムスライスのために、10(ms)程度の <br> 周期のタイマー割り込みを使います。このタイマー割り込み内でページの <br> アクセス統計を取ると考えてみると、256MB の物理メモリを一杯に使った <br> 状態では、厳密な統計を取るなら、最悪、256MB/4KB = 65536 ページ分 <br> ものページエントリーの調査が必要になります。 <br>  <br> つまり、秒間100回も 65536 回の forループ処理をバックグラウンドで <br> 行わなくては成らなくなるということです。 <br>  <br> しかも、同じCPUに、メモリを多く詰めば益々自体は悪化する傾向が <br> あります（なんとかしなければ。）。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/04 02:07<> <a href="../test/read.cgi/tech/1042375466/564" target="_blank">&gt;&gt;564</a> <br> &gt;ワーキングセットの推定をするには将来の処理の動きを読まなきゃいけないけど、 <br> &gt;それをするには処理終了までのシュミレーションをしなきゃならないけど、 <br> &gt;それは計算機にさせるべき処理そのものなので、それが完了した時点でワーキングセットの <br> &gt;推定は無意味になるので、原理的に無理。 <br>  <br> 言葉のあやになってしまうのですが、一応、ワーキングセットの厳密な意味は、 <br>  <br> t0 &lt;= t &lt; t0 + τ <br>  <br> の間にアクセスされたページの集合と言う意味で、それ自体の計算は可能です。 <br>  <br>  <br> むしろ、IA32では、厳密な LRU の方が無理です。統計処理を行う時間間隔で <br> 曖昧さが出ます。つまり、10(ms)毎に統計を取るならば、10(ms)の誤差が <br> 出ると言う事です。 <br>  <br>  <br> おっしゃりたいのは、「OPTアルゴリズム」の方ではないでしょうか。そちらは、 <br> 絶対に実現不可能です。証明は簡単です。未来にいくつかの可能性がある場合、 <br> 現時点で最適な選択を行う事は絶対に無理だからです。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/04 02:17<> 速度を度外視した場合の厳密なワーキングセットの具体的な計算法を書いて <br> おきます。 <br>  <br> まず、タイマー割り込み内で、物理ページが割り付けられているページエントリ <br> のアクセスビットを調査します。調査が済むと0にします。 <br>  <br> そして、各ページエントリに対応して例えば1BYTEの統計情報を対応させます。 <br> IA32では、ページエントリにはそれだけの余地がないので、別の場所に <br> 入れます。今、k 番目のエントリのアクセスビットを参照し、accessだと <br> すると、 <br>  <br> page_entry[k]-&gt;m_bit &lt;&lt;= 1; <br> page_enetr[k]-&gt;m_bit |= access; <br>  <br> とします。 <br>  <br> これで、m_bit の 1 のビットの数が、直前の 80(ms)の間のページ k の <br> アクセス頻度になります。 <br>  <br> このアクセス頻度が一番小さいページをページアウトするというわけです。 <br>  <br> しかし、この処理は、256MBの物理メモリだと、最悪、秒間 100 * 65536 回の <br> 繰り返し処理が必要になると思います。 <>
デフォルトの名無しさん<>sage<>03/03/04 02:30<> <a href="../test/read.cgi/tech/1042375466/567" target="_blank">&gt;&gt;567</a> <br> ＞page_entry[k]-&gt;m_bit &lt;&lt;= 1;  <br> ＞page_enetr[k]-&gt;m_bit |= access;  <br> それくらいの機能はCPU(MMU)に積んどけってことか。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/04 03:04<> 　物理メモリーを、256 MB も(?)積んでいる機種のCPUは、恐らく 1GHzは <br> あると考えるのが妥当だという前提に立つと、1エントリの調査に x クロック <br> 必要だとすると、 <br>  <br> x * (100*65536)/(1024*1024*1024) = 0.006 x <br>  <br> これが、この処理が必要とする時間の全CPUパワーに対する比率になります。 <br>  <br> x = 10 として、6%。 <br>  <br> IA32だと、ページテーブルエントリのアクセスビットだけでなく、 <br> ページディレクトリ・エントリのアクセスビットもあるので、そちらで <br> 普段は「カリング」できるので、このアルゴリズムでも余り問題ないの <br> でしょうか？？ <br>  <br> しかし、FLATモデルだと、複数のページディレクトリがあるので、そんな <br> ことで済まないような気も。 <>
デフォルトの名無しさん<>sage<>03/03/04 03:39<> ＞普段は「カリング」できるので、このアルゴリズムでも余り問題ないの  <br> ＞でしょうか？？  <br> http://home.att.ne.jp/theta/yasunori/linux/LinuxMM/LinuxMM33.html <br> Linux2.2 on x86で、ちと古いのかもしれんが。 <br> Lﾀﾝがタイマ割り込みで実行したい処理に相当するのは、これかなぁ。 <br> 知ってたらごめんね。 <>
デフォルトの名無しさん<>sage<>03/03/04 09:26<> <a href="../test/read.cgi/tech/1042375466/568" target="_blank">&gt;&gt;568</a> <br> ＭＭＵつーか、メモリに載せなきゃいけない罠。 <br> メモリ全体にこんな機能つけけるのは無駄極まりないけど、 <br> ページテーブル専用の特殊メモリをつけるってのもありかな？ <br>  <br> といってみたけど、プロセス数がその特殊メモリの容量に制約受けそうで嫌だな。 <br>  <>
K<>sage<>03/03/04 11:00<> L氏へ <br> &gt;　しかし、物理メモリが大量に搭載された現状で、実際にOSを作る際には、 <br> &gt;「如何に高速にページの使用統計を取るか」の方が重要の様に思います。 <br>  <br> 　そのとおりです。僕はこれについてうまい方法を既に考えています。僕の方法 <br> では、非常に効率的に使用統計が取れます。もし興味があればOSASKスレッドで <br> 、「OSASKのLRU管理アルゴリズムについて説明してほしい」と書いてください。 <br> L氏が興味を持たなくても、他のどなたかが興味を持たれれば、その方が書き込 <br> んでくださってもかまいません。 <br>  <br> 　特徴をかいつまんで説明すると、僕の方法では、タイムスライスごとの定期的 <br> な調査が不要です。それでも十分に詳しい(むしろ定期的検査よりも詳しい)使用 <br> 統計が取れます。もっというと、PTEのアクセスビットやダーティビットを参照 <br> する必要すらありません。 <br>  <>
デフォルトの名無しさん<><>03/03/04 11:54<> <a href="../test/read.cgi/tech/1042375466/572" target="_blank">&gt;&gt;572</a> <br> FLATでも使えるんですか？ <>
デフォルトの名無しさん<>sage<>03/03/04 12:03<> <a href="../test/read.cgi/tech/1042375466/559" target="_blank">&gt;&gt;559</a> <br> 開発段階においても、(5)は重要。デバッグが楽になると思う。 <br>  <br> システムコール用構造体を使うと、アドレス計算の分だけ処理が遅くなる思う。 <br> しかし、誤差の範囲と言えるかも。 <br> ただ、ユーザスレッドや非同期IOなどの実装が楽になるかもしれない。 <br> <a href="../test/read.cgi/tech/1042375466/560" target="_blank">&gt;&gt;560</a>の言ってる事が起こり得るから、システムコール用構造体はswap禁止とかも有り。 <br> しかし、システムコール用構造体が増えすぎると結局swapが必要になりますね。 <br>  <br> やっと、わかりそうな内容になってきた感じなので素人考えを初書き込み。 <>
デフォルトの名無しさん<>sage<>03/03/04 12:05<> <a href="../test/read.cgi/tech/1042375466/572" target="_blank">&gt;&gt;572</a> <br> お久ー。 <>
デフォルトの名無しさん<>sage<>03/03/04 12:07<> <a href="../test/read.cgi/tech/1042375466/571" target="_blank">&gt;&gt;571</a> <br> 漏れが勘違いしてる可能性大だが、 <br> ＞といってみたけど、プロセス数がその特殊メモリの容量に制約受けそうで嫌だな。  <br> 統計を残したいのは、物理メモリに読み込まれてるページへのアクセス有無だから、 <br> プロセス数はあまり関係ないと思う。 <br> 単一のプロセスが乗っかってる・使ってるページをいつもまとめてページイン・アウト <br> するわけじゃないから。 <br> <a href="../test/read.cgi/tech/1042375466/569" target="_blank">&gt;&gt;569</a> <br> ＞普段は「カリング」できるので、このアルゴリズムでも余り問題ないの  <br> ページが4KB単位であること自体が一種の「カリング」なんだろうよ。 <br> 256MBもの物理メモリを4KB単位1枚ずつでちまちま管理してたらだめだめだー、ってことかなぁ。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/04 13:49<> <a href="../test/read.cgi/tech/1042375466/576" target="_blank">&gt;&gt;576</a> <br> &gt;ページが4KB単位であること自体が一種の「カリング」なんだろうよ。 <br> まあ、そうなんですが、IA32では、最低でも二段階のページ機構が <br> あり、4KBのページを1024個集まったものをページテーブルと言い、 <br> 1024個のページテーブルへのポインタを集めたものをページディレクトリ <br> と言います。一つの項目の事をエントリと言い、エントリが集まったものを <br> テーブルと読んでいます。 <br> ページディレクトリには、1024個のページテーブルへのポインタが格納 <br> されているのですが、NULL に相当するポインタを書くことが出来て、 <br> そこに対応するページテーブルが存在しない事を意味する事が出来います。 <br>  <br> あるページ P にアクセスがあると、該当するページテーブルの中の <br> 該当するエントリの A ビットが1にセットされます。もし書きこみ <br> アクセスだと、D ビットも1にセットされます。CPUが勝手に0にリセット <br> することはなく、0にしたいときは、ソフト的に行います。 <br>  <br> 今説明したのは、ページテーブルのエントリのことですが、実は、 <br> 対応するページディレクトリのエントリにも、A ビットがあり、そこも <br> 同時に 1 にセットされるということです。 <br>  <br> ですので、ページテーブルのAビットを参照する前に、 <br> ページディレクトリエントリのAビットで大まかに調査を省くことが <br> できるというわけです。#569では、これを「カリング」と表現したわけです。 <br>  <br>  <br>  <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/04 13:53<> なお、ページ・ディレクトリ・エントリを、PDE、ページ・テーブル・エントリを <br> PTEと呼びます。 <br>  <br> 　IA32の初代ではこのように「二段階」のページ機構を持っていたのですが、 <br> 最新のIA32系のCPUでは、三段階にすることも出来ます。 <br>  <br> 　また、ページのサイズをもっと大きくする事(たしか、4MBと2MB)が出来ます。 <br>  <br>  <br> 　なお、メインフレーム用のCPUでは、A BIT, D BIT 相当のBITだけではなく、 <br> 「アクセス時間」などの統計情報も PTE にCPUが書き込んでくれるものが <br> あるそうです。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/04 13:58<> <a href="../test/read.cgi/tech/1042375466/572" target="_blank">&gt;&gt;572</a> <br> 　もしかして、既に実ページが割り当てられているページを、 <br> アクセスした瞬間にページ例外ハンドラに通知させるために、 <br> P BIT = 0 にしますか？ <br>  <br>  <br> 　それとも、「最もページアウトするべきぺージ」を探すのを諦め、 <br> とにかく、以前調査した時に A = 0 にしておいて、今回の <br> 調査で、A = 1 になっているページを、リング状に探しますか？ <br> ちなみに、これは、FINUFO(First In Not Used First Out) <br> アルゴリズムというそうで、Linux 2.2で使われていたようです <br> （Linux 2.4 では良く知りません。）。 <>
デフォルトの名無しさん<>sage<>03/03/04 20:37<> <a href="../test/read.cgi/tech/1042375466/578" target="_blank">&gt;&gt;578</a> <br> わかりやすい説明ｻﾝｸｽ。 <br> ＞　なお、メインフレーム用のCPUでは、A BIT, D BIT 相当のBITだけではなく、  <br> ＞「アクセス時間」などの統計情報も PTE にCPUが書き込んでくれるものが  <br> ＞あるそうです。  <br> 物理メモリよりも大きい仮想メモリを基準に据えれば、そうすべきなのかもな。 <br> CPU設計はOS設計と切り離しちゃだめだと再認識。（←だからなんだよ） <br>  <br> ところで、Lﾀｿは、ページングアルゴリズムの実装の工夫で何を解決しようとしてる？ <br> ・スラッシングの防止（必要メモリが物理メモリを超えた途端ﾀﾞｻｰ） <br> ・トータルパフォーマンスの向上（曖昧だな） <br>  <br> それとも、単に、 <br> ・最低限のページングアルゴリズムを実装した時のパフォーマンスダウンを抑止 <br> したいだけ？ワーキングセットが理想的なのに、それを実装すると、理想に反して <br> パフォーマンスが落ちるのに耐えられないのか。 <br>  <br>  <br> OSがどのように使われるかで最適（と思われる）ページングアルゴリズムは <br> 異なるよな。 <br> 例： <br> ・RTOS→ページングはハードリアルタイム性を失う原因となるので法度 <br> ・サーバOS→多数のプロセスが間欠的に動作。トータルで必要なメモリ大 <br> ・ビジネス用途→フォアグラウンドのプロセスを快適に動作 <br> ・マルチメディア→RTOSほどでないにしろソフトリアルタイム性を実現 <br>  <br> 学問的には、どんなサイズでいくつくらいのメモリの塊が必要かの分布の分析に <br> なるだろうが、味気ないので誤解をおそれず上記のように書いてみた。 <br> こいつらのトレードオフの重心をどこに置く？それともダイナミックに対応したいのかな。 <>
デフォルトの名無しさん<>sage<>03/03/04 23:03<> <a href="../test/read.cgi/tech/1042375466/580" target="_blank">&gt;&gt;580</a> <br> 「ダイナミック対応」．．．おもろいかも <br>  <br> プロセスごとに変えるといいかも。 <br> 最初はリアルタイム用のモードで動かして、必要ないようだったらページングをはじめるとか。 <br>  <>
デフォルトの名無しさん<>sage<>03/03/04 23:38<> <a href="../test/read.cgi/tech/1042375466/581" target="_blank">&gt;&gt;581</a> <br> ＞最初はリアルタイム用のモードで動かして、必要ないようだったらページングをはじめるとか。  <br> マルチメディア的なリアルタイム（せいぜいソフトリアルタイム）なら、可能。 <br> ハードリアルタイムは難しいというか無理ぽ。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/04 23:46<> OSASKのちょっと一言ページを見ました。 <br> 実は#279でも書いていた通り（ちょっと一言ページでも私が気付いている <br> 事には触れられていましたが）、本当は、実ページを割り振っている <br> ページに対し、アクセス統計（+書きこみフラグ）を取る目的だけのために <br> 存在ビット(P)を0にすると言うアイデアは、置換アルゴリズムについて考え <br> 始めた当初から気付いていました。 <br>  <br> ただし、私のアイデアは、ワーキングセットアルゴリズムでの、 <br> W(t0,τ)を厳密に高速に求めることができるような方法です。 <br>  <br> 例えば、W(t0,τ)を、10ms に一回調べたいならば、10ms周期で発生 <br> させるタイマー割り込みの中で、調査対象のページのPを全て0にします。 <br> ただし、このアルゴリズムでは、P=1のページはリストに保持できるので、 <br> そのリストを利用してP=1のページだけをP=0にして、もともとP=0だった <br> ページを初期化するための時間は必要は有りません。 <br>  <br> このようにすると、ページにアクセスされると必ずページ例外が発生します <br> ので、例外が起きたページをリストに加え、同時に、P=1にしておきます。 <br> すると、次のタイマー割り込みまでには、10msの間にアクセスされた <br> ページのリストが出来上がります。 <br>  <br> このリストの過去N回分から、10N (ms)分のワーキングセットを求める <br> のは容易です。 <br>  <br>  <br> ただし、速度が少し心配なのと、コピー・オン・ライトや、 <br> オン・デマンド・ページング、プリ・ページングなどと合わさった時の <br> 事情を考慮しなくてはならない部分がちょっと心配です。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/04 23:48<> <a href="../test/read.cgi/tech/1042375466/583" target="_blank">&gt;&gt;583</a> 訂正 <br> #279---&gt;#579 <>
デフォルトの名無しさん<>sage<>03/03/04 23:57<> <a href="../test/read.cgi/tech/1042375466/583" target="_blank">&gt;&gt;583</a> <br> なるほど。 <br> AとかDのフラグをチェックしてアクセス/書き込みがあったかどうかを調べると、 <br> コストがかかる <br> -&gt;アクセス/書き込みが起こったときに例外を起こさせて（しかも1周期に1回だけ） <br> A,Dフラグをチェックするコストを節約するわけだな。 <br>  <br> で、ページ例外のコストはどれくらい？ <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/05 00:19<> 少しだけですが、今着目しているアルゴリズムを使う場合のページテーブル <br> の様子を細かく見てみます。 <br>  <br> P=0 のページには、最低でも次のような種類があることになります <br> （まだ他にもあるかもしれません。）。 <br>  <br> 1. 予約されていない不法なページ（このときは、例外報告後、タスクを終了） <br> 2. ディスクにページアウトされているページ <br> 3. アクセス統計を取るためにP=0にされているだけで、本当は実ページが <br> が割り振られているページ <br> 4. オン･デマンド・ページングのために予約されているページ。 <br>  <br>  <br> しかし、3の状態のページは、P=1にしたら、即座にPTEとして利用出来る <br> ことが好ましいため、上記の4つの状態を区別するビットは、"AVL"の <br> 3BITに置く事になると思います。ただし、1BITだけあれば、3の状態 <br> であるかどうかだけは十分判別できますので、AVLは1BITだけ利用すれば <br> 十分で、他の三つの状態のときは、PビットとこのAVLの1BIT以外の残り <br> 30BITは、全て「ソフトウェアで利用可能」ですので、それを <br> 利用すれば十分区別できます（ただし、2の状態のときのディスク上の <br> ページアウト装置番号とスロット番号を保持できる予知は必要ですが、 <br> 残り29BITが利用出来ます。）。 <br>  <br>  <br> 良く考えてませんが、初期化されないメモリを確保した時には、 <br> オン・デマンド・ページングの状態にするのが良いかもしれません。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/05 00:35<> <a href="../test/read.cgi/tech/1042375466/585" target="_blank">&gt;&gt;585</a> <br> &gt;で、ページ例外のコストはどれくらい？ <br>  <br> 物理ページが足りなくなる事自体、頻度は余り多くありませんので、 <br> そのためだけに普段から統計を取る重たい処理を行い続ける方針 <br> が正しいかどうかです。 <br>  <br> ようするに、ほとんど起こらない事のために、普段から無駄に準備を続けている <br> ということです。 <br>  <br> 正確なLRUアルゴリズムや、ワーキングセットアルゴリズムを行うためには、 <br> ハードウェアからの支援が必要だと諦めてしまう方が得策かもしれません。 <br>  <br>  <br> IA32では、FINUFO アルゴリズムでいいのかも。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/05 00:45<> &gt;引数がレジスタで渡せるうちはレジスタで渡したほうがいいんじゃないかな <br> &gt;将来的に仮想メモリをサポートして、(2)と(3)の間にtask switchがおきて(1)がswap outしたとすると、 <br> &gt;(5)の前にswap inする必要がある。少なくともチェックは必要。 <br> &gt;まあイマドキのCPUなら無視できる負荷かもしれんけど <br>  <br> システムコール実装の経験がないので <br> どちらが良いのかわからないのですが <br> 例えばシステムコールに文字列を渡すときはレジスタ経由でも <br> 結局は構造体のようなものを介さなければいけないですよね。 <br> 迷います。 <br>  <br> 開発段階においても、(5)は重要。デバッグが楽になると思う。 <br>  <br> &gt;&gt; 574 <br> &gt;システムコール用構造体を使うと、アドレス計算の分だけ処理が遅くなる思う。 <br> &gt;しかし、誤差の範囲と言えるかも。 <br> &gt;ただ、ユーザスレッドや非同期IOなどの実装が楽になるかもしれない。 <br>  <br> そうですね、システムコール用構造体を使用するメリットは大いにありますよね。 <br> ありがとうございます。 <>
デフォルトの名無しさん<>sage<>03/03/05 00:52<> <a href="../test/read.cgi/tech/1042375466/587" target="_blank">&gt;&gt;587</a> <br> ＞ようするに、ほとんど起こらない事のために、普段から無駄に準備を続けている  <br> ＞ということです。  <br>  <br> linux2.2のカーネルについてのリンク <a href="../test/read.cgi/tech/1042375466/570" target="_blank">&gt;&gt;570</a> <br> を見ただけだが・・・ <br>  <br> メモリの用途＝ヒープか、コードか、マップトファイルか、などによって、 <br> どうでも良いメモリは（物理メモリが空いてても）積極的にページングされてもいいと <br> 思うのだが。 <br>  <br> そうでなくても、 <a href="../test/read.cgi/tech/1042375466/569" target="_blank">&gt;&gt;569</a> で検討した数値 <br> ＞ x = 10 として、6%。  <br> よりもコストを節約できるなら、「やってみる価値」はあると思う。 <br> 他との絡みもあるからそれを今決めるのは大変だろうな。 <br>  <br>  <br> これはつまらない提案だが、ページングとか、タスクスイッチのアルゴリズムは <br> 簡単なシミュレーションモデルで実装前に検証した方が良くないか？ <br> 研究論文関係だとシミュレーションの結果だけ、というのも多いんだろ？（←想像） <br>  <br> 後で手戻りできなくて、後悔しつづけるより、今のうちにちょっと苦労して <br> シミュしておくのは、悪くないと思わない？ <br> パラメトリックなモデルにしておけば、 <br> ・メモリ速度 <br> ・（ページアウト先の）HDD速度 <br> ・物理メモリサイズ <br> ・プロセス数と使用メモリのサイズ <br> などの影響もある程度（＝傾向）見積もれて、動作報告との照合が可能になるだろう。 <br> あんまり凝るとかえって手数がかかって意味ないが。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/05 01:03<> 　「ランダム・アルゴリズム」がCPU内部のキャッシュアウトに使われた <br> ことがあるそうです。 <br>  <br> 　そんなものでも、それなりの性能は得られる、と書いてありました。 <br>  <br>  <br> 　しかし、そもそも、ディスクにスワップアウトした時点で、余り性能なんて <br> 期待しないですよね？　運悪くスラッシングがおきても、ランダムに <br> ページアウトしていれば、そのうち最悪の事態は回避されると思いません <br> か？ <br>  <br> 　故意にやろうとするほど、余計に自体が悪くなる事ってありますよね。 <br>  <br> 　ひげを剃る時、鏡を見ながら剃るより、適当に剃った方がうまく行くと <br> 聞いた事もあります（笑）。 <>
デフォルトの名無しさん<>sage<>03/03/05 01:10<> LightConeは、自分が躁鬱のような状態であるということの気づいて <br> いるんでしょうか。 <br> 本人以外はこのスレを読めば分かるけどね。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/05 01:12<> 　何回も連続してスラッシングが起きるようなときって、ページ単位で <br> 置換する限り、どんなページをページ・アウトしても大抵駄目なんじゃない <br> かなあ、と思いますね。なぜって、そういう時は、実ページが割り当てられ <br> ているページ全体をまんべんなくアクセスしてるかもしれないからです。 <br>  <br> 　そんなときは、どれか犠牲となる（？）タスク全体をディスクに <br> 吐き出してしまうしか方法がないように思いますね。 <br>  <br>  <br> 　今考えている方法は、どうも、実際にやるのを躊躇してしまいます。 <br>  <br> 　だって、メモリを一杯積んで、絶対スワップファイルが必要ないとき <br> も、（不在）ページ例外だけは日常的に起きるなんて、話が変だと <br> 思いませんか？ <>
今は<>sage<>03/03/05 01:13<> 躁だね。 <>
わたもち<>sage<>03/03/05 01:15<> 最新版アップしました～ <>
わたもち<>sage<>03/03/05 01:17<> アドレス書いてないし．．．(汗 <br> ttp://www.geocities.co.jp/SiliconValley-PaloAlto/6802/os_06.zip <br> 色々追加したので、大分時間がかかりました。 <>
デフォルトの名無しさん<>sage<>03/03/05 01:19<> 何が追加されたのか書いてほすぃ <>
わたもち<>sage<>03/03/05 01:23<> ReadMeのコピーですけど．．． <br> プロテクトモードでの実行 <br> Packed Pixel形式での描画 <br> 文字出力用メソッド等、少数の描画用メソッド <br> 簡易スレッドの作成、実行、停止 <br> (メモリ保護を実装してプロセスにする予定なので、名前はProcessになっています) <br> イベントシステムの簡易実装 <br> (キーイベントのみ手抜きで作ってみました) <br> こんな感じのことが実装されました。 <>
デフォルトの名無しさん<>sage<>03/03/05 01:29<> <a href="../test/read.cgi/tech/1042375466/592" target="_blank">&gt;&gt;592</a> <br> ＞　だって、メモリを一杯積んで、絶対スワップファイルが必要ないとき  <br> ＞も、（不在）ページ例外だけは日常的に起きるなんて、話が変だと  <br> ＞思いませんか？  <br>  <br> 確かに変だけど、 <br> ・理想的なアルゴリズムを実現するには <br> ・IA32ではハードの支援が足りなくて <br> ・コスト節約のためにわざと例外を起こす <br> ということなら現実解としては成り立つじゃないか。 <br>  <br> 理想的なCPU、理想的なOS、理想的なアプリが現実から乖離しているからこそ、 <br> 各種パフォーマンスのトレードオフを実装技術で調整するんだろ。 <br> それを逆手に取った使い方とかアプリに対してはそりゃ無力だろうが。 <br> 環境やアプリをしぼればしぼるほど、実装技術はいらんだろうよ。 <br> 大型コンや、RTOSみたいにな。Lﾀﾝはそれで満足か。 <>
デフォルトの名無しさん<>sage<>03/03/05 03:04<> <a href="../test/read.cgi/tech/1042375466/591" target="_blank">&gt;&gt;591</a> <br> このスレ見てみ、ちゃんと分かってるよ <br>  <br> OSASKとNOWSMART-OSを褒めちぎるスレッド <br> http://pc.2ch.net/test/read.cgi/os/1031377826/ <>
デフォルトの名無しさん<>sage<>03/03/05 04:17<> <a href="../test/read.cgi/tech/1042375466/599" target="_blank">&gt;&gt;599</a> <br> ふーん、かなりイタいね、K,L両氏とも。 <br> 日本にはこんなﾔｼらしかいないのか、と思うとかなり <br> ｼｮﾎﾞｰﾝ・・・。ソフト分野でアメ公追い越すのはだいぶ <br> 先の話だな・・・。それとも現在においてOS制作ってーのは <br> 趣味の領域にすぎないことの現れなのか・・・。 <>
デフォルトの名無しさん<>sage<>03/03/05 05:54<> 歴史上、偉人や天才と言った人はみなどこかキレてる。 <>
デフォルトの名無しさん<>sage<>03/03/05 08:31<> Win32は基本的には64KB単位で処理しているらしいね <br> GetSystemInfo APIで得られる値なので真偽は不明だけど <br>  <br> 16ページまとめることでどの程度性能向上するかは不明だが <br> 少なくとも必要なワークエリアサイズは抑えられるということかな <br>  <br>  <>
602<>sage<>03/03/05 08:35<> <a href="../test/read.cgi/tech/1042375466/602" target="_blank">&gt;&gt;602</a>は間違い <br> 今調べたら普通に4KB単位だった <br>  <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/05 10:51<> 　今考察中の置換アルゴリズムえで測定周期をT、ページ例外の単位時間あたりの <br> 平均発生頻度をz(T)とすると、ほぼ、 <br>  <br> z(T) = (1/T)*h(T) <br> h(T) = (時間Tの間にアクセスされる仮想ページの平均枚数) <br>  <br> になると思います。また、メモリ・アクセスに局在性が全く無いときに、 <br> h(T)の上限が決まるだろうと予想されるので、恐らく、 <br>  <br> h(T) &lt;= (T/T0) * h(T0) <br>  <br> に近い関係式が成り立つと思います。すると、 <br>  <br> z(T) &lt;= h(T0) / T0 <br>  <br> という式になり、z(T)は、Tによらない右辺の様な式により大まかな上限が <br> 決まることになると思います。z(T)は、”単位時間”あたりなので当然の <br> 結果です。 <br>  <br> T0はなんでもいいので、T0=1とすると、 <br>  <br> z(T) &lt;= h(1) = (単位時間あたりのアクセスされる仮想ページの平均枚数) <br>  <br> という結果が出ます（ある意味、当然の結果ですね。）。 <br>  <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/05 10:54<> [続き] <br> つまり、ページ例外の秒間発生回数は、秒間ページアクセス頻度以下になる <br> ということで、メモリアクセスの局在性があれば、それより少なくなるとい <br> うことになります。 <br>  <br> 今考えているのは、「物理メモリが不足した時にページアウトするページを <br> 選ぶ方法」です。256MBの物理メモリを積んでいて不足する状況を考えると、 <br> 行列計算などでは、ほぼ物理メモリ全域をアクセスすると考えられるので、 <br> 256MB / 4KB = 64K枚のページにアクセスする可能性が高く、ページ例外 <br> 発生頻度は、秒間、最悪で65536回になると思います。 <br>  <br> 逆に、テキストエディタなどでは、メモリアクセスの局在性が強いので、秒間 <br> 数枚程度になると思います。 <br>  <br> つまり、アプリケーションの種類によって例外発生頻度の変動が大きくなると <br> 思います。 <>
名無したん＠お嬢<>sage<>03/03/05 10:55<> もしかしてラージページって知らない？ <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/05 11:02<> 実は、上の議論では、T&gt;=T0と言う条件があって、本当は、 <br>  <br> T1 &lt; T &lt; T2 <br> に対し、 <br>  <br> h(T2)/T2 &lt;= h(T)/T &lt;= h(T1)/T1 <br>  <br> になると思います。定義:z(T)≡h(T)/Tにより、 <br>  <br> z(T2) &lt;= z(T) &lt;= z(T1) <br>  <br> つまり、平均的な秒間例外発生頻度は、測定周期が大きいほど小さくなると <br> いう、これまた当然の結果が得られます。 <>
デフォルトの名無しさん<>sage<>03/03/05 12:20<> コンピュータって自然科学を扱うより遙かに簡単だね。 <br>  <>
デフォルトの名無しさん<>sage<>03/03/05 12:28<> <a href="../test/read.cgi/tech/1042375466/585" target="_blank">&gt;&gt;585</a> <br> <a href="../test/read.cgi/tech/1042375466/604" target="_blank">&gt;&gt;604</a> <a href="../test/read.cgi/tech/1042375466/605" target="_blank">&gt;&gt;605</a> <a href="../test/read.cgi/tech/1042375466/607" target="_blank">&gt;&gt;607</a> <br> ページ例外の頻度（コスト）は定性的にしか取り扱えないから、躊躇しとるわけやね。 <br> 一方、統計情報の収集を素直に実装した場合のコストは定量的に求まる。 <br> 統計が嫌いなら、そもそも比較すべきでないな。 <br>  <br> しかし敢えて指摘すると、仮想メモリ機構自体が「アクセスの局在性」に依存してるよな。 <br> キャッシュの類も同じだ。 <br>  <br> つまり、 <br> ＞行列計算などでは、ほぼ物理メモリ全域をアクセスすると考えられるので、  <br> という前提は、仮想メモリ機構を利用する根拠を台無しにする。 <br>  <br> いくら統計が嫌いでも、 <br> 「ある頻度で、巨大行列計算が発生すると・・・」と捉えなければ意味が無い。 <br> アプリのモデル化だ。仮定したモデルに近い状態でのみ想定したパフォがでるだろう。 <br> 想定外ではちゃんと動かないだろう。それは「いじわるテスト」だ。 <br> ある程度の「いじわるな状況」でもかろうじて動作しつづける必要はあるだろう。 <br> 堅牢性や信頼性と呼ばれるかもしれない。 <br>  <br> もともと足りない物理メモリ量をパフォの低下というコストを支払ってで実現するのが <br> 仮想メモリなんだろ。実装技術で補えるのは、せいぜい低下するパフォをできるだけ抑えることだけだ。 <br> いくら工夫しても、巨大行列演算は物理メモリ量に依存する。演算のアルゴリズムを変えて、 <br> メモリ使用量を減らした方がよほど性能向上が期待できる。 <>
デフォルトの名無しさん<>sage<>03/03/05 12:31<> ＞もともと足りない物理メモリ量をパフォの低下というコストを支払ってで実現するのが  <br> おっと、これは単一プロセスを仮定してたな。 <br> 多数のプロセスを動かすためにも仮想メモリは必要ﾀﾞﾅ。 <br> もっとも、その場合は「タスクスケジューラ」と総合的にパフォを決められるよな。 <br> 物理メモリが足りないことを、この2つの場合で分けて考えてるよな。 <>
デフォルトの名無しさん<>sage<>03/03/05 16:33<> &gt;&gt;そうですね、システムコール用構造体を使用するメリットは大いにありますよね。 <br>  <br> それを突き詰めると「メッセージング機構」になるんだと思われ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/06 00:18<> <a href="../test/read.cgi/tech/1042375466/611" target="_blank">&gt;&gt;611</a>さん <br> &gt;&gt;&gt;そうですね、システムコール用構造体を使用するメリットは大いにありますよね。 <br> &gt; <br> &gt;それを突き詰めると「メッセージング機構」になるんだと思われ <br>  <br> なるほど。 <br> ここで言うメッセージ機構というのはシステムコール(または別のサービス） <br> をメッセージという抽象化された方法でサーバ(OS)に要求するということですよね。 <br>  <br> システムコールをメッセージ機構で実装した場合、どのような実装例があるのでしょうか。 <br> マイクロカーネルへとつながるところでもあるので興味があります。 <>
デフォルトの名無しさん<>sage<>03/03/06 00:27<> <a href="../test/read.cgi/tech/1042375466/612" target="_blank">&gt;&gt;612</a> <br> QNX <>
わたもち<>sage<>03/03/06 00:28<> 私も、そろそろ簡易スレッドを実装したので、カーネルモードと <br> ユーザーモードの分離のため、システムコールを実装してゆきます。 <br> データの渡し方には、レジスタ渡しと構造体渡しがあり、利点、欠点など、 <br> 丁寧な解説ありがたく参考にしています。 <br>  <br> さまざまな OS のファンクションコール方法 <br> Windows NT int 2eh eax にファンクション番号 <br> FreeBSD int 80h eax にファンクション番号。パラメータはスタック。  <br> Linux int 80h eax にファンクション番号。パラメータはレジスタ。 <br> らしいです。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/06 00:37<> &gt;Windows NT int 2eh eax にファンクション番号 <br> &gt;FreeBSD int 80h eax にファンクション番号。パラメータはスタック。 <br> &gt;Linux int 80h eax にファンクション番号。パラメータはレジスタ <br>  <br> おお。すばらしいです。 <br> WindowsNTのシステムコールは引数渡しはどうやっているんでしょう。 <br>  <br> &gt;<a href="../test/read.cgi/tech/1042375466/612" target="_blank">&gt;&gt;612</a> <br> &gt;QNX <br>  <br> なるほど、たしかにQNXはマイクロカーネルでメッセージを <br> 使用していましたね。 <br> x86での具体的な実装方法を解説したものを探すか、 <br> ソースをみるって感じですかね。 <br> 解説はあまり期待できないかも・・・ <>
わたもち<>sage<>03/03/06 00:44<> Windows NT　は記述がありませんでした．．．(^^; <>
デフォルトの名無しさん<>sage<>03/03/06 00:56<> <a href="../test/read.cgi/tech/1042375466/615" target="_blank">&gt;&gt;615</a> <br> QNXの解説本って、 <br> 「次世代OSアーキテクチャ QNXオペレーティング・システムの世界」 <br> http://www.amazon.co.jp/exec/obidos/ASIN/4875932006/ <br> と、あとはインターフェイス誌の紹介記事くらいしかないな。 <br> 漏れはこの本持ってるけど、実装についてはプロセッサ固有部分については書かれてない。 <>
デフォルトの名無しさん<>sage<>03/03/06 01:07<> http://pc2.2ch.net/test/read.cgi/tech/1045907529/l50 <br> ↑GUIの実装にて、窓の重なり実装に関してどうのこうの。 <br> LかK、教えてやれば？ <br>  <>
デフォルトの名無しさん<>sage<>03/03/06 01:22<> <a href="../test/read.cgi/tech/1042375466/618" target="_blank">&gt;&gt;618</a> <br> そいつらの議論は、実装以前だ。放置の方向で。 <>
デフォルトの名無しさん<>sage<>03/03/06 05:37<> &gt;QNXの解説本って、 <br>  これじゃいかん?　 <br>  http://www.qnx.co.jp/usr/help/product/neutrino_2.11_ja/sys_arch/about.html <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/06 11:08<> アドレス空間としてシステム共有空間とプロセス固有空間を持ち、ユーザープロ <br> セスのコードやデータは全てプロセス固有空間内に格納され、他のプロセスから <br> は完全に不可視な状態になります。 <br>  <br> 　今、アプリケーションが、write(fdsc, buf, size); でファイルへ書きこみを行 <br> った場合を想定します。 <br>  <br> 　bufは、アプリケーションの固有空間にありますので、FSPからは直接は見えま <br> せん。しかし、FSPは、bufのデータを読み込む必要がありますので、カーネルの <br> ページング・サービスを用いて自分のアドレス空間に覗き窓を作ってbufの内容 <br> を覗くか、または、単純にアプリのプロセスにいる間に共有空間にコピーした <br> ものを参照する必要があるでしょう。速度面から前者を用いる事になるでしょ <br> うが、そもそも、FSのアドレス空間がアプリケーションと分離されていなけれ <br> ばこんなことは必要なく、直接見ることが出来ます。 <br>  <br> つまり、もし、FSをモノリシック方式で書いていれば、覗き窓もコピーも <br> 必要ないのです。FSは、いくつかのプロセスで同時に実行され、それぞれの <br> アドレス空間で、直接データをやり取り出来ます。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/06 11:08<> なお、IA32では、モノリシック方式でもカーネルをFSから保護することは <br> 可能です。やり方は簡単で、FSの特権レベルをカーネルより低くすればいい <br> だけです（タスク（プロセス）と特権レベルとが、独立した概念としてあり <br> ますので）。 <br>  <br>  <br> また、「プロセス」の特徴として、定期的に実行に移される特徴がありますが、 <br> FSでは、キャッシュの遅延書きこみなどに少し便利そうではありますが、それだけ <br> のためには、少し「大げさ」過ぎるようにも思えます。 <br>  <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/06 11:12<> <a href="../test/read.cgi/tech/1042375466/621" target="_blank">&gt;&gt;621</a> の冒頭に挿入(ｽﾏｿ) <br>  <br> 　Linusもマイクロカーネルに懐疑的だそうですが、実は私も懐疑的で、 <br> OSのサブシステムからカーネルを保護するだけなら、IA32では他の方法も <br> あるのではないかと思っています（懐疑的なだけで、絶対意味が無いとか <br> そういう意味ではありませんが。）。 <br>  <br> 　最初に断っておきますが、QNXの資料にも明言されている通り、マイクロカー <br> ネルはカーネルが小さい事を意味するのではなく、OSの各種サブシステムを <br> 一般プロセスとほぼ等価な形態で構成する方法を言います。 <br>  <br> 　OSのサブシステムの代表であるファイルシステム(以下FS)をこのような一般 <br> プロセスとして記述した場合を考えましょう。以下、FSのプロセスをFSPと言い <br> ます。 <br>  <br> 　現代的なOSでは(Windows/Linux/QNXも)、特殊例を除き、個々のプロセスは、 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/06 11:45<> 　私が考えるマイクロカーネルの最大の利点は、サブシステムが壊れた時に、 <br> アプリを巻き添えにしなくていい、と言う点です。 <br>  <br> 　モノリシックの場合、サブシステムが壊れると、そのサブシステムを呼び <br> 出していた全てのアプリも同時にダウンすると思います。 <br> 　しかも、あるアプリが原因となってサブシステムが壊れた場合にも、 <br> そのサブシステムを「同時に」利用していた別のアプリもダウンしてしまう <br> ことに成ると思います。 <br>  <br> 　例えば、マイクロカーネルでは、FSがダウンしても、FSを呼び出していた <br> アプリは、read()や、write()が異常終了するだけで済むと思います。 <>
わたもち<>sage<>03/03/06 14:07<> <a href="../test/read.cgi/tech/1042375466/620" target="_blank">&gt;&gt;620</a>さん <br> 私も、マイクロカーネルについて調べていたので、大変参考になりました。 <br> ありがとうございます。 <br>  <br> &gt;&gt;LightConeさん <br> モノリシック、マイクロカーネル方式のカーネルについて御教授ありがとうございます。 <br> 私は機能と作成の難易度を考慮して、以下のようにしたいと思います。 <br> ・モノシリックカーネル方式 <br> ・モジュール化をきっちり行い容易にマイクロカーネル方式へ移行できるようにする。 <br> ・システムコールは割り込みゲートを使用。パラメータはレジスタ渡し。 <br> メモリ配置は、530で示していただいた資料を参考に、考え中です。 <br> ありがとうございます。 <br>  <br> Liner Frame Bufferの物理ベースアドレスが 0xE0000000 となっていたのに、 <br> 今気づいたのですが、なぜメモリは4G無いにもかかわらず、 <br> プログラムは正常に動いているのでしょうか．．． <br> 理由をご存知の方、参考になるアドレス等教えていただけないでしょうか？ <>
名無したん＠バカップル<>sage<>03/03/06 14:14<> フレームバッファはVGA内のメモリにあるから本体メモリとは関係なっしんぐ。 <br>  <>
わたもち<>sage<>03/03/06 14:25<> <a href="../test/read.cgi/tech/1042375466/626" target="_blank">&gt;&gt;626</a>さん <br> 御教授ありがとうございます。 <br> 物理アドレス 0xE0000000～ 以降は、自動的に、チップセットの方が <br> VGA内のメモリへマップする言うことでしょうか？ <>
デフォルトの名無しさん<>sage<>03/03/06 14:36<> <a href="../test/read.cgi/tech/1042375466/626" target="_blank">&gt;&gt;626</a> <br> ﾊｧｯ？ﾈﾀか？ <br> PCIのコンフィグレーション（←違ってたらごめん）で <br> 論理アドレス0xE0000000にVGA内のメモリが割りつくだけだろ。 <br> 本体メモリを４GB積んでも、そこの512MBは使えないから、関係オオアリクイだとおもうが？ <>
名無したん＠バカップル<>sage<>03/03/06 14:44<> ボクへの煽り？ｶｺﾜﾙｲ <>
デフォルトの名無しさん<>sage<>03/03/06 14:46<> <a href="../test/read.cgi/tech/1042375466/629" target="_blank">&gt;&gt;629</a> <br> （悪）←ｶｺﾜﾙ <>
名無したん＠バカップル<>sage<>03/03/06 14:49<> ｶｺﾜﾙ(・∀・)ｲｲ!! <>
わたもち<>sage<>03/03/06 15:10<> Intelのチップセット仕様を見たところ、 <br> ISA Hole 0100_0000～00F0_0000 <br> AGP Aperture ～FEC0_0000 <br> その他色々なシステム領域 FEC0_0000～ <br>  <br> とありました。ありがとうざいます。 <br> これを知らなければ、危うく、ISA Hole まで使ってしまうところでした。 <br> システムのメモリ空間に、メインメモリ以外のものが色々割り当てられているようです。 <>
デフォルトの名無しさん<>sage<>03/03/06 15:17<> <a href="../test/read.cgi/tech/1042375466/632" target="_blank">&gt;&gt;632</a> <br> http://www.cqpub.co.jp/column/books/2001a/34331PC_Legacy/pc-lega1.htm <br> こういう資料もある。 <>
わたもち<>sage<>03/03/06 15:35<> ありがとうございます。そういえば、このような資料もありましたね．．． <br> ここは、割り込み部分を作っている時に、よく見てました。 <>
デフォルトの名無しさん<>sage<>03/03/06 15:53<> <a href="../test/read.cgi/tech/1042375466/623" target="_blank">&gt;&gt;623</a> <br> ＞一般プロセスとほぼ等価な形態で構成する方法を言います。  <br> Linuxなどではdaemonプロセスが、そこを補ってるという認識。 <br>  <br> QNXを利用したときの幸せはqnetの透過性。分散とか並列とか言わずに潔く <br> よそのCPUやマシンのリソースを利用できる。 <br> しかもその場合の性能保証/測定・多重化ができる。 <br> ネットといえばイーサしか思い浮かばない向きには関係ないだろうがな。 <>
617<>sage<>03/03/06 16:15<> <a href="../test/read.cgi/tech/1042375466/620" target="_blank">&gt;&gt;620</a> <br> 知らんかった。ｻﾝｽｺ。日本法人が（やっと）まともに仕事してるんだな。 <>
デフォルトの名無しさん<>sage<>03/03/06 18:29<> OSASK3.4でますた。 <>
デフォルトの名無しさん<>sage<>03/03/06 21:23<> <a href="../test/read.cgi/tech/1042375466/624" target="_blank">&gt;&gt;624</a> <br> FSが落ちた時点でどっちみちそのシステムは死んだも同じだと思われ。 <br> マイクロカーネルはモジュール化の一つの方法にしか過ぎないのでは <br> ないかとオレは思ってる。ローダブルモジュールでも十分だと。 <>
デフォルトの名無しさん<>sage<>03/03/06 22:29<> Ｌたん書き込み多すぎ。他のレスが埋まってしまう。 <br>  <br>  <br>  <br> というか、ＬスレＤＡＴ落ちしかねない静かさだがいいのか？ <br> この際このスレに一本化するというのも手ではあるとおもうが．．． <>
デフォルトの名無しさん<>sage<>03/03/06 23:07<> &gt;639 <br> 確かに今のOS板の速度的には <br> あとわずか6ヶ月ぐらいの放置でdat落ちしかねないな、うん。 <>
デフォルトの名無しさん<>sage<>03/03/06 23:09<> <a href="../test/read.cgi/tech/1042375466/640" target="_blank">&gt;&gt;640</a> <br> 言葉のあやだよぅ <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/07 11:13<> <a href="../test/read.cgi/tech/1042375466/625" target="_blank">&gt;&gt;625</a> <br> 間違えやすいのですが、「モノ*シリ*ック」ではなく、「モノ*リシ*ック」 <br> です(monolithic)。SFで「モノリス」とか時々聞きますけど、それで <br> 覚えましょう（笑）。小さいリスがコンピュータの中に一匹入っている <br> 様子を想像するとさらにGOOD! <br>  <br> <a href="../test/read.cgi/tech/1042375466/638" target="_blank">&gt;&gt;638</a> <br> ハードディスクのFSが落ちた場合は、おっしゃる通り、大方再起不能で <br> しょうね。でも、GUIサブシステムが落ちた場合などなら、マイクロカーネル <br> では再ロードできるのではないでしょうか。モノリシックでは、再ロードは、 <br> かなり難しいと思います。ただし、パフォーマンスを落とさずにGUIを <br> 一般プロセスでどうやって組むのか良く分かりませんが。 <br>  <br>  <br> &gt;Liner Frame Bufferの物理ベースアドレスが 0xE0000000 となっていたのに、 <br> &gt;今気づいたのですが、なぜメモリは4G無いにもかかわらず、 <br> &gt;プログラムは正常に動いているのでしょうか．．． <br>  <br> それは、その物理アドレスにFrame Bufferが顔を出すように組まれている <br> からです。PCIバスなどでは、バス調停回路があって複雑ですが、 <br> 基本的な考え方を説明すると、アドレスのいくつかのビットがある <br> 特定の1,0の組み合わせの時だけ信号線がONになるような回路を「デコーダ」 <br> と呼びますが、そのデコーダが、Frame BufferのRAMのCS(CHIP SELECT)に <br> 接続されているだけです。 <br>  <br> 例えば、E000 0000 ～ E00F FFFF までを Frame Bufferにしたい場合は、 <br> 上位 12 BIT が、E00 になっていればいいので、 <br>  <br> bool CS = (PhysAddr[31-20] = 1110 0000 0000B); <br>  <br> みたいな回路を、AND素子とNOT素子を使って作ります。 <>
デフォルトの名無しさん<>sage<>03/03/07 11:14<> <a href="../test/read.cgi/tech/1042375466/642" target="_blank">&gt;&gt;642</a> <br> 頭いいな <>
わたもち<>sage<>03/03/07 11:40<> &gt;&gt;LightConeさん <br> ご指摘、丁寧な解説ありがとうございます、 <br> 完全に「モノシリック」と勘違いしていました(^^; <br> ハードウェアーの方まで、よくご存知のようで頭があがりません．．． <>
617<>sage<>03/03/07 11:40<> <a href="../test/read.cgi/tech/1042375466/643" target="_blank">&gt;&gt;643</a> <br> おまえがばかなだけ。でも確かにLﾀﾝはわかりやすく説明できる能力をもってる。 <br> しかし頭いいﾔｼにそんな手間を取らせるのは漏れ達愚民の大罪だな。 <br> 長島監督に、毎日少年野球のコーチさせるのはもったいないだろ。 <>
デフォルトの名無しさん<>sage<>03/03/07 11:49<> <a href="../test/read.cgi/tech/1042375466/644" target="_blank">&gt;&gt;644</a> <br> 第2種←今は呼び名違う <br> レベルの知識と思われ。つまり計算機の基礎。ソフトもハードもない。基礎だ。 <>
デフォルトの名無しさん<>sage<>03/03/07 11:51<> 小さいリスはいいですな <br> しかし物知り言っている人って2001年宇宙の旅のモノリスとか知らないのかな <br>  <>
わたもち<>sage<>03/03/07 11:59<> <a href="../test/read.cgi/tech/1042375466/646" target="_blank">&gt;&gt;646</a>さん <br> プログラミングは、趣味でやってるだけなので、基礎も発展もさっぱり無く、 <br> 多大な迷惑をかけると思いますが、どうぞお許しください。 <>
デフォルトの名無しさん<>sage<>03/03/07 12:07<> マイクロカーネルは、さらに小さいリスが何匹もいるのかな。 <br>  <br> と、これだけ書いても仕方ないので。 <br> <a href="../test/read.cgi/tech/1042375466/642" target="_blank">&gt;&gt;642</a> <br> X window systemは、一般のプロセスなのでは？ <br> パフォーマンスは、落ちているでしょうけど。 <br> プロセッサが限定されますが <br> MTRR(Memory Type Range Register)てのがありますね。 <>
デフォルトの名無しさん<>sage<>03/03/07 12:08<> <a href="../test/read.cgi/tech/1042375466/648" target="_blank">&gt;&gt;648</a> <br> 情報処理試験の参考書でも買えば。 <br> 試験受けろとは言わんけど。 <br> 基礎を勉強するのには結構役立つよ。 <>
デフォルトの名無しさん<>sage<>03/03/07 12:11<> <a href="../test/read.cgi/tech/1042375466/648" target="_blank">&gt;&gt;648</a> <br> 知らないことが別に悪いわけじゃないよ。がんがれ。 <br> だけど基礎はしりませ～ん、だとコミュニケーションに無駄が増えすぎる。 <br> 内容は理解していなくてもｺﾄﾊﾞを知ってるだけで、お互いすごく楽になると思うよ。 <br> 頭の中のｲﾝﾃﾞｸｽを作るためにも入門書は役に立つと思われ。&lt;-糞本でもな。 <br> 「鶏のﾀﾏｺﾞを塩化ナトリウム少量を溶かした熱湯の中で10分間熱してくれ。」 <br> -&gt;「ゆで卵作って。」 <>
デフォルトの名無しさん<>sage<>03/03/07 12:20<> <a href="../test/read.cgi/tech/1042375466/651" target="_blank">&gt;&gt;651</a> <br> 半熟で頼む。 <>
デフォルトの名無しさん<>sage<>03/03/07 12:32<> <a href="../test/read.cgi/tech/1042375466/652" target="_blank">&gt;&gt;652</a> <br> オトコはだまってハードボイルド。 <>
デフォルトの名無しさん<>sage<>03/03/07 12:39<> <a href="../test/read.cgi/tech/1042375466/651" target="_blank">&gt;&gt;651</a> <br> 書き漏らしたてるﾅ。 <br> ＞「鶏のﾀﾏｺﾞを塩化ナトリウム少量を溶かした熱湯の中で10分間熱してくれ。」  <br> ＞-&gt;「ゆで卵作って。」  <br> まずはこれでコミュニケーション確立。で、<a href="../test/read.cgi/tech/1042375466/652" target="_blank">&gt;&gt;652</a> が言ってるみたいに、やっと <br> 「どうやって茹でたら欲するゆで卵ができるか」の議論ができるわけ。 <br> 塩は純粋なNaClで良いのか、熱湯は常に100℃がいいのか、温泉玉子みたいに <br> 低い温度の方がいいのか、など。 <br> で、実装になったら、長たらしい方の表現に戻らねばならん。厳密さが必要になるからな。 <br> いわゆる仕様書というやつだな。 <>
デフォルトの名無しさん<>sage<>03/03/07 12:43<> <a href="../test/read.cgi/tech/1042375466/645" target="_blank">&gt;&gt;645</a> <br> ＞長島監督に、毎日少年野球のコーチさせるのはもったいないだろ。  <br> だからLﾀﾝ、1週間に1回来てくれればいいよ。(ｗ <br>  <>
デフォルトの名無しさん<>sage<>03/03/07 12:53<> 何も言うまい何も言うまい・・・ <>
デフォルトの名無しさん<>sage<>03/03/07 13:13<> 何回リロードしても出てこないよ(´Д⊂ｸﾞｽﾝｗ <br> F5連打じゃないよｗ <>
デフォルトの名無しさん<>sage<>03/03/07 13:17<> <a href="../test/read.cgi/tech/1042375466/657" target="_blank">&gt;&gt;657</a> <br> 誤爆です <>
デフォルトの名無しさん<>sage<>03/03/07 15:11<> <a href="../test/read.cgi/tech/1042375466/657" target="_blank">&gt;&gt;657</a> <br> 時期から察するに、入試結果かな？ <>
デフォルトの名無しさん<>sage<>03/03/07 17:10<> たぶん採用の選考試験の結果じゃないかな。 <br> 大学で proxy の cache が効いていると、 <br> Flash を使ったページが cache からウンロードされて更新されないというケースがあった。 <>
デフォルトの名無しさん<>sage<>03/03/07 17:28<> NWSOSは、最近動きないねぇ。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/07 22:48<> <a href="../test/read.cgi/tech/1042375466/661" target="_blank">&gt;&gt;661</a> <br> 水面下でいろいろやってるんです(^_^;) <br>  <br> API-DLLへの対応、インポート関数への対応、スタックの自動伸張、 <br> ドライバの仕様化、予約だけして物理ページを割り当てないメモリへの <br> 対応、ファイルバッファ容量の自動調整機能など。 <br>  <br> さらにこれらのための下準備として、NWSLをインポート関数や特権レベル <br> セグメントへ対応させたり、今までALL-ASSEMBLERだったメモリ管理や <br> ファイル管理を全部Cに書き直したり、割り込み中でメモリの確保をやめて <br> 固定バッファに直したりとか。 <br>  <br> 一応、DLLも扱えるようになり、ファイルシステムとメモリシステムは全部Cに <br> 書き直せて、スタックの自動伸張にも基本的には対応できました。 <br> アプリのファイルサイズが大分小さくなり、GUIの文字描画やエディタの <br> 描画速度も速くなり、タスクスイッチも高速になっていますが、全て <br> 内部構造の変化でしかなく、目に見えて分かるような機能向上がないので、 <br> 公開していないのです。 <>
デフォルトの名無しさん<>sage<>03/03/07 22:51<> <a href="../test/read.cgi/tech/1042375466/662" target="_blank">&gt;&gt;662</a> <br> よっ。大統領～。 <>
デフォルトの名無しさん<>sage<>03/03/07 23:12<> <a href="../test/read.cgi/tech/1042375466/662" target="_blank">&gt;&gt;662</a> <br> すげ～ <br> 素直に感動した。 <>
デフォルトの名無しさん<>sage<>03/03/08 01:18<> <a href="../test/read.cgi/tech/1042375466/662" target="_blank">&gt;&gt;662</a> <br> アプリケーションプログラマから見れば十分機能向上してます。 <br> もっとまめに更新してもいいんじゃないかと思いますが。 <br>  <>
デフォルトの名無しさん<>sage<>03/03/08 01:30<> なぜLﾀﾝは、自作自演を続けるの? <br> そしてなぜ気づかれていないと思うのだろうか。 <br> (自称）頭いいならば、そこにまず気づけと。 <>
デフォルトの名無しさん<>sage<>03/03/08 01:48<> <a href="../test/read.cgi/tech/1042375466/666" target="_blank">&gt;&gt;666</a> <br> 以下は、漏れが書いたんだが、本人ではないぞ。 <br> <a href="../test/read.cgi/tech/1042375466/645" target="_blank">&gt;&gt;645</a> <a href="../test/read.cgi/tech/1042375466/646" target="_blank">&gt;&gt;646</a> <a href="../test/read.cgi/tech/1042375466/663" target="_blank">&gt;&gt;663</a>  <br>  <br> <a href="../test/read.cgi/tech/1042375466/558" target="_blank">&gt;&gt;558</a>以降、ずっとLﾀﾝに噛み合わない突っ込み入れ続けてるが。 <br> 結構楽しい。 <>
667<>sage<>03/03/08 02:06<> <a href="../test/read.cgi/tech/1042375466/568" target="_blank">&gt;&gt;568</a> <a href="../test/read.cgi/tech/1042375466/570" target="_blank">&gt;&gt;570</a> <a href="../test/read.cgi/tech/1042375466/576" target="_blank">&gt;&gt;576</a> <a href="../test/read.cgi/tech/1042375466/580" target="_blank">&gt;&gt;580</a> <a href="../test/read.cgi/tech/1042375466/582" target="_blank">&gt;&gt;582</a> <a href="../test/read.cgi/tech/1042375466/585" target="_blank">&gt;&gt;585</a> <a href="../test/read.cgi/tech/1042375466/589" target="_blank">&gt;&gt;589</a> <a href="../test/read.cgi/tech/1042375466/598" target="_blank">&gt;&gt;598</a> <a href="../test/read.cgi/tech/1042375466/609" target="_blank">&gt;&gt;609</a> <a href="../test/read.cgi/tech/1042375466/610" target="_blank">&gt;&gt;610</a>  <br> <a href="../test/read.cgi/tech/1042375466/613" target="_blank">&gt;&gt;613</a> <a href="../test/read.cgi/tech/1042375466/617" target="_blank">&gt;&gt;617</a> <a href="../test/read.cgi/tech/1042375466/619" target="_blank">&gt;&gt;619</a> <a href="../test/read.cgi/tech/1042375466/628" target="_blank">&gt;&gt;628</a> <a href="../test/read.cgi/tech/1042375466/630" target="_blank">&gt;&gt;630</a> <a href="../test/read.cgi/tech/1042375466/633" target="_blank">&gt;&gt;633</a> <a href="../test/read.cgi/tech/1042375466/635" target="_blank">&gt;&gt;635</a> <a href="../test/read.cgi/tech/1042375466/636" target="_blank">&gt;&gt;636</a>  <>
デフォルトの名無しさん<>sage<>03/03/08 05:09<> &gt; アプリのファイルサイズが大分小さくなり ～ <br> &gt; 高速に ～ <br>  <br> &gt; 目に見えて分かるような機能向上がない <br>  <br> どっちよ？ <>
664<>sage<>03/03/08 08:28<> <a href="../test/read.cgi/tech/1042375466/666" target="_blank">&gt;&gt;666</a> <br> <a href="../test/read.cgi/tech/1042375466/664" target="_blank">&gt;&gt;664</a>はLﾀﾝじゃないですよ。 <br> Lﾀﾝについては賛否両論色々あるだろうけど、 <br> 基本的にその開発力は凄いと思いますよ。 <br> K氏と並ぶ日本OS界の裏スターです。 <>
643<>sage<>03/03/08 10:19<> &gt;K氏と並ぶ日本OS界の裏スターです。 <br> 同意。 <>
デフォルトの名無しさん<>sage<>03/03/08 12:12<> <a href="../test/read.cgi/tech/1042375466/659" target="_blank">&gt;&gt;659</a> <br> (　ﾟдﾟ)ﾋﾞﾝｺﾞｰｗ <br> おじゃましました。大学合格したら僕もOS作って見たかったのに～ <br> 時間がぁ｡ﾟ(ﾟ´Д｀ﾟ)ﾟ｡ <>
デフォルトの名無しさん<>sage<>03/03/08 12:48<> <a href="../test/read.cgi/tech/1042375466/672" target="_blank">&gt;&gt;672</a> <br> 国公立前期か。 <br> まあ、後期で頑張れ。枠が狭くてキツいだろうけど。 <>
デフォルトの名無しさん<>sage<>03/03/08 12:57<> <a href="../test/read.cgi/tech/1042375466/672" target="_blank">&gt;&gt;672</a> <br> にちゃんはほどほどにしとけよ。 <>
わたもち<>sage<>03/03/08 13:21<> カーネルモードとユーザーモードの分離、かなり時間かかりそうです。 <br> os_06.zipと外見はほとんど変わりそうにありません；； <>
デフォルトの名無しさん<>sage<>03/03/08 21:05<> <a href="../test/read.cgi/tech/1042375466/672" target="_blank">&gt;&gt;672</a> <br> オレはもう前期であきらめてOS作ってるんだが、まぁ、がんばれよ。 <br> 俺みたいな万年浪人生なんかになるんじゃないぞ。 <>
デフォルトの名無しさん<>sage<>03/03/09 00:01<> <a href="../test/read.cgi/tech/1042375466/676" target="_blank">&gt;&gt;676</a>　　ﾊﾀﾗｹ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/09 00:46<> カーネル簡易スレッドの実装にめどが立ちました。 <br> またMona開発開始してから、よく今まで動いていたなぁ。。。 <br> と思うような実装の抜けを発見しました。 <br>  <br> 今の実装にまずいところがありすぎるので <br> 少しずつ既存のコードも書き直して行こうと思っています。 <br>  <br> もう少し土台をしっかりとしたものにしないといけません。 <>
676<>sage<>03/03/09 01:10<> ﾁｬﾝﾄﾊﾀﾗｸﾂﾓﾘﾀﾞｿﾞヽ(`Д´)ﾉ <br> ﾌﾘｰﾀｰﾀﾞｶﾞﾅ(w <>
デフォルトの名無しさん<>sage<>03/03/09 01:16<> <a href="../test/read.cgi/tech/1042375466/678-679" target="_blank">&gt;&gt;678-679</a> <br> gogo <>
デフォルトの名無しさん<>sage<>03/03/09 01:31<> <a href="../test/read.cgi/tech/1042375466/679" target="_blank">&gt;&gt;679</a> <br> ﾁｬﾝﾄ家賃・光熱費・食費・プロバイダ・携帯・年金・健康保険、 <br> 全部払える程もらえる一時雇いのｼｺﾞﾄあるのか。 <br> 日本経済もまだまだ捨てたﾓﾝじゃないな。 <br> それとも、OS作るために生活切り詰めてｶﾞﾝｶﾞｯﾃるのか？ <>
デフォルトの名無しさん<>sage<>03/03/09 01:59<> &gt; それとも、OS作るために生活切り詰めてｶﾞﾝｶﾞｯﾃるのか？ <br> 某Ｋ？ <>
デフォルトの名無しさん<>sage<>03/03/09 02:15<> 家賃は2万です。 <br> プロバイダは無料のヤシです。 <br> 保険は払ってませぬ。 <br> 携帯は持っていませぬ。 <br> あとはひたすら節約 <>
デフォルトの名無しさん<>sage<>03/03/09 02:49<> ﾌﾟｯ、大学にも行けないヤシがOSか。 <br> 万年浪人生の次は万年夢想家ってか（ﾌﾟﾌﾟﾌﾟ <br>  <br>  <br>  <br>  <br> と煽っとこう。後期に向けてちょっとでも勉強しる！ <>
デフォルトの名無しさん<>sage<>03/03/09 03:06<> <a href="../test/read.cgi/tech/1042375466/683" target="_blank">&gt;&gt;683</a> <br> ＞あとはひたすら節約  <br> 気に入った。でもな・・・ <br> 昔近所のあんちゃんが、東京でそんな生活してて、 <br> 栄養失調→肺炎でｼﾝだ。弱ってるとすぐ腐るからな。 <br> 腹が減ったら、盗んででもﾁｬﾝﾄ食えよ。 <br> ｼﾝんだ方がﾏｼと、ｼﾇよりﾏｼは大違いだからな。 <>
デフォルトの名無しさん<>sage<>03/03/09 04:08<> <a href="../test/read.cgi/tech/1042375466/685" target="_blank">&gt;&gt;685</a> <br> おまえんとこから盗んでやるから住所おしえれ。 <>
デフォルトの名無しさん<>sage<>03/03/09 08:52<> Lﾀﾝはどうやって生計を立てているの？ <>
デフォルトの名無しさん<>sage<>03/03/09 10:01<> ちょっと雑談入ってんな。。 <br> ま、いつまでも続くものではないか。 <>
デフォルトの名無しさん<>sage<>03/03/09 10:25<> <a href="../test/read.cgi/tech/1042375466/687" target="_blank">&gt;&gt;687</a> <br> 宅プーらしいが……。 <>
デフォルトの名無しさん<>sage<>03/03/09 11:32<> Lﾀﾝ、今ﾌﾟｰなの？オイラ京大の先生のトコで働いているん <br> だけどさあ。ウチで働いてみる？(w 一応募集はしてるけど。 <br>  <br>  <br>  <>
デフォルトの名無しさん<>sage<>03/03/09 13:07<> &gt;689 <br> 単にホームオフィスかもしれないぞ。 <>
デフォルトの名無しさん<>sage<>03/03/09 14:02<> <a href="../test/read.cgi/tech/1042375466/691" target="_blank">&gt;&gt;691</a> <br> 一瞬、ホームレスと読み間違えますた（ｗ <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/09 15:42<> （実態は、家庭内ホームレスなんです（笑）） <>
デフォルトの名無しさん<>sage<>03/03/09 16:00<> <a href="../test/read.cgi/tech/1042375466/693" target="_blank">&gt;&gt;693</a> <br> 座布団1枚！ <>
デフォルトの名無しさん<>sage<>03/03/09 17:05<> <a href="../test/read.cgi/tech/1042375466/693" target="_blank">&gt;&gt;693</a> <br> なるほど、家庭にいながらホームレスか。禅問答だな。 <br> そこにブラックホールがあるから、HNがライトコーンなんだな。 <>
デフォルトの名無しさん<>sage<>03/03/09 18:54<> ハウスはあるが、ホームはない。とか？ <>
デフォルトの名無しさん<>sage<>03/03/09 19:50<> 家庭はあるけどホームがないのでは。 <>
デフォルトの名無しさん<>sage<>03/03/09 19:55<> ある種のアフォリズムかと思われ。 <>
デフォルトの名無しさん<>sage<>03/03/09 23:23<> どんどん進んでいますね。 <br>  <br> OSを作ってみよう  <br> http://pc.2ch.net/test/read.cgi/os/1046271176/l50 <>
超先生＠ﾌﾞﾛｯｺﾘ株100円  </b>◆leaf/RYZgY <b><>sage<>03/03/10 20:04<> ＜後ろ頭＞y-~~ このOSもC++ベースらしい。 <br>  <br> Nachos <br> ttp://www.cs.washington.edu/homes/tom/nachos/ <>
デフォルトの名無しさん<>sage<>03/03/10 20:46<> <a href="../test/read.cgi/tech/1042375466/700" target="_blank">&gt;&gt;700</a> <br> UML(User Mode Linux)みたいな感じですね。 <br> ドキュメントを斜め読みしてますが、結構面白そうです。 <br> 情報Thanks <br>  <>
デフォルトの名無しさん<>sage<>03/03/10 23:37<> 外出かもしれんが。 <br> カーネル書くのにC++使うのは構わんが、STLはどうなの？ <br> 動的メモリ確保するアルゴリズムは、mallocできなくてあぼーんしたりしないの？ <br> コンストラクタの問題はどっかのｽﾚで話題になってたけど。 <br> っていうか、カーネル内部でmallocしようにも、メモリ管理ってOSの仕事だよな。 <br> カーネル内部専用のmallocつくって、内部でだけ使うのかなぁ？ <br> 漏れみたいなバカは考えるだけ無駄だな。ﾔｯﾊﾟﾘ。←ｷｯﾊﾟﾘ。 <>
デフォルトの名無しさん<>sage<>03/03/11 01:48<> OSASKスレの <br> http://pc.2ch.net/test/read.cgi/os/1042810549/503 <br> これの前半を読んだ瞬間、マイクロカーネルのすごさを垣間見た気がした。 <br>  <br> カーネルスレッドの実装をしているという事は、 <br> そろそろAPIの設計もするようになるんでしょうね。 <br> ひげぽんさん、がんばってください。 <>
デフォルトの名無しさん<>sage<>03/03/11 04:44<> マイクロカーネルとはさっぱり関係ないわけだが <>
705<>sage<>03/03/11 12:33<> <a href="../test/read.cgi/tech/1042375466/704" target="_blank">&gt;&gt;704</a> <br> このファイルデバイスデーモンってのが、OSサーバというものかと思ったんですが、勘違い？ <>
705=703<>sage<>03/03/11 12:35<> 名前ミスってた。もう少し勉強して出直してきます。 <>
デフォルトの名無しさん<>sage<>03/03/11 15:01<> まあミスってはいないわけだが <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/11 23:44<> <a href="../test/read.cgi/tech/1042375466/702" target="_blank">&gt;&gt;702</a> <br> &gt;カーネル書くのにC++使うのは構わんが、STLはどうなの？ <br> &gt;動的メモリ確保するアルゴリズムは、mallocできなくてあぼーんしたりしないの？ <br>  <br> Monaでは、カーネルが動的なメモリを使えるように演算子new,delete <br> malloc(),free()を実装することでこの問題に対処しています。 <br>  <br> &gt;っていうか、カーネル内部でmallocしようにも、メモリ管理ってOSの仕事だよな。 <br> &gt;カーネル内部専用のmallocつくって、内部でだけ使うのかなぁ？ <br>  <br> 私の認識ではその通りです。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/703" target="_blank">&gt;&gt;703</a> <br> &gt;カーネルスレッドの実装をしているという事は、 <br> &gt;そろそろAPIの設計もするようになるんでしょうね。 <br> &gt;ひげぽんさん、がんばってください。 <br>  <br> ありがとうございます。 <br> なるべく早く、マイクロカーネル化できる様がんばります。 <br>  <>
デフォルトの名無しさん<>sage<>03/03/11 23:48<> こんな物が出ているわけだが、参考になるかな？ <br> http://www.zdnet.co.jp/news/0303/11/nebt_24.html <br>  <br> Commodore 64でWebブラウズが出来るOSって、ちょっと凄いかも。 <>
702<>sage<>03/03/13 00:02<> <a href="../test/read.cgi/tech/1042375466/708" target="_blank">&gt;&gt;708</a> <br> ソース嫁ばわかるはずのことなのに・・・ひげぽんﾀﾝって、いい人だね。 <br> つまらない指摘に答えるために時間を取らせちゃって申し訳ない！ <br> 反省して、ソース読みに逝ってきます。 <>
わたもち<>sage<>03/03/14 13:45<> あと、もうちょっとで、カーネルとリンクしていない本物の実行ファイルが <br> 動きそうです。 <br> ページングの設定 mov cr3, eax でエラーが出て先に進まない；； <br> あともうちょっとなのに... <>
デフォルトの名無しさん<>sage<>03/03/14 16:17<> 一度聞いてみたかったという理由だけで聞かせてください。 <br> OSのAPIに渡す文字列がchar*なのは、作り手の方々はどう思っておられるのでしょう？ <br>  <br> \0を文字列中に含めることが可能な言語(C/C++以外のほぼ全て)からだと、 <br> APIを介すると\0以降が切れてしまう事が起こり得るわけで… <br>  <br> (本来ならM$に問うべきかも…) <>
わたもち<>sage<>03/03/14 16:49<> <a href="../test/read.cgi/tech/1042375466/712" target="_blank">&gt;&gt;712</a>さん <br> 全然見当はずれなことを言っているかもしれませんが、 <br> 私が思ったことをレスしてみます。 <br> C,C++でAPI作られているから、文字列は char* と扱うことにしている。 <br> Java、.NETでAPIが出来ていれば、Stringオブジェクトが渡すものになる。 <br>  <br> char* は単に配列の先頭アドレスへのポインタなので、 <br> char[0] = 文字列の長さ <br> char[1]～ 文字コード <br> と解釈するようなプログラムにすれば、255文字までなら、 <br> \0も使える文字列になると思います。 <>
デフォルトの名無しさん<>sage<>03/03/14 18:21<> <a href="../test/read.cgi/tech/1042375466/712" target="_blank">&gt;&gt;712</a> <br> アドレスを渡してるだけなので、 <br> 内部で単なるバイナリ列として扱えば\0以降は切られない。 <>
デフォルトの名無しさん<>sage<>03/03/14 18:42<> <a href="../test/read.cgi/tech/1042375466/714" target="_blank">&gt;&gt;714</a> <br> 素朴な疑問だけど、サイズ渡さないと何処までがデータなのか判らない気がする。 <>
デフォルトの名無しさん<>sage<>03/03/14 19:00<> <a href="../test/read.cgi/tech/1042375466/715" target="_blank">&gt;&gt;715</a> <br> そのとおりです。 <br> 712の主張が、データが\0で切られてしまうって事をどう思うかって事だと解釈したので、 <br> レスはこれだけでいいと思いました。 <br>  <>
デフォルトの名無しさん<><>03/03/15 15:21<> age <>
デフォルトの名無しさん<>sage<>03/03/15 17:01<> \0で終端を表すAPI採用してるOSなんて、unix系だけだろ？ <>
デフォルトの名無しさん<>sage<>03/03/15 18:03<> \0で終端を表す文字列へのポインタを引数にとるAPIならWin32APIにもある。 <br> ファイル操作やディレクトリ操作など。 <>
デフォルトの名無しさん<>sage<>03/03/15 19:36<> そもそも\0を含む文字列ってどうよ <br> おまいら宇宙後でも話すんかい <>
デフォルトの名無しさん<>sage<>03/03/15 20:43<> テキストファイルとか何かの拍子で制御コードが混じってることは完全に無いことも無いので、 <br> アプリ的には一応対応しておきたい場合は希にある。 <>
デフォルトの名無しさん<>sage<>03/03/15 20:44<> <a href="../test/read.cgi/tech/1042375466/718" target="_blank">&gt;&gt;718</a> <br> C言語がそうだからな。 <br> C言語(or C++)がメインの言語のＯＳってＵＮＩＸ系だけだっけ？ <br>  <>
デフォルトの名無しさん<>sage<>03/03/15 20:47<> <a href="../test/read.cgi/tech/1042375466/722" target="_blank">&gt;&gt;722</a> <br> UNIXのためにC言語が作られたから　そういうこと。 <br>  <br> 例えばMacintoshはもともとPascal指向なコンピューターだったから、 <br> C言語の方にStr255という型を定義してる。 <br>  <br> CP/Mは'$'で区切るんじゃなかったっけな… <>
デフォルトの名無しさん<>sage<>03/03/15 20:49<> 例えば、バイナリファイルを開けることを自慢するテキストエディタとか作ってて、 <br> locale依存な検索機能付けたら文字列比較APIが\0以降を見てくれなかったり <br> クリップボードを経由したら、\0以降のデータが無くなったりしてたら迷惑でしょ。 <>
デフォルトの名無しさん<>sage<>03/03/15 20:56<> <a href="../test/read.cgi/tech/1042375466/724" target="_blank">&gt;&gt;724</a> <br> カットアンドペーストをWindowsのクリップボード経由で行うバイナリエディタ作ったことあるけど、 <br> テキストデータとしては渡さなかったな。 <br>  <br> テキストエディタなら適当にエスケープ文字でも決めといて対応すればいいんじゃない？ <br> 文字列比較その他はＡＰＩより自前の方がいい気がするし。 <br>  <br> 何でもＯＳが対応しなきゃいけないって事は無いとおもう。 <>
デフォルトの名無しさん<>sage<>03/03/15 22:39<> ファイル名に\0文字が入ってるドライブをマウントして <br> 他にコピーしたりするとちょっと嫌かも。 <br> でもさすがに文字数渡すようにしてるか。 <>
デフォルトの名無しさん<>sage<>03/03/15 23:21<> DOSはファイル名に&h20含むだけでファイル扱えなくなるもんなぁ… <>
デフォルトの名無しさん<>sage<>03/03/15 23:28<> <a href="../test/read.cgi/tech/1042375466/727" target="_blank">&gt;&gt;727</a> <br> カーネルはスペース扱えるよ <br> スペース対応していないアプリが多いだけ <>
デフォルトの名無しさん<>sage<>03/03/17 20:15<> 保守sage機能作動 <>
デフォルトの名無しさん<>sage<>03/03/18 23:13<> monaは打ち上げ花火だったか…… <br> # 年度末の忙しさってだけなら良いんだけど <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/18 23:22<> こんにちは。 <br>  <br> # 年度末の忙しさってだけなら良いんだけど <br>  <br> 全くもって上記の通りです。 <br> 仕事が落ち着くまでしばらく停滞するかと思われます。 <>
デフォルトの名無しさん<>sage<>03/03/18 23:28<> まあ、マッタリやろうよ。 <>
わたもち<>sage<>03/03/19 17:38<> bochsでは、ページングの設定に成功し、 <br> 特権レベル３のユーザープロセスでVGAへの書き込みに、成功しました～ ヽ(´ー｀)ノ <br> もう少し整備すれば、ユーザーアプリケーションも作れるようになると思います。 <br>  <br> またまた、実機では、FDから読み込めないというエラーが出て困っています。 <br> cs=ds=ss=0x9000で <br>     mov     ah, 0x02 <br>     mov     al, 0x21;[kernel_app_size] <br>     mov     ch, 0x00 <br>     mov     cl, 0x02    ;セクタ番号だけは0x1から始まるから <br>     mov     dh, 0x00 <br>     mov     dl, 0x00 <br>     mov     bx, 0x1000 <br>     mov     es, bx <br>     mov     bx, 0x0000 <br>     int     0x13        ;(*) <br>     jc      read_err <br>     jmp     read_return <br> jc      read_errで、エラー処理へjmpして、 <br> エラーコード0x04(要求されたセクタ番号が見つからない)を出力します。 <br> al,es,bxへの代入が異なっている以外は、以前のverと同じはずなのですが... <br> どうかご指摘、御教授お願いします。 <>
わたもち<>sage<>03/03/19 17:52<> 現在のバグあり版はここです。 <br> ttp://www.geocities.co.jp/SiliconValley-PaloAlto/6802/os_10_debug.zip <>
デフォルトの名無しさん<>sage<>03/03/19 17:57<> 複数トラックにまたがるセクタって転送できたっけ？ <>
わたもち<>sage<>03/03/19 18:10<> 御教授有難うございます。 <br> 単純に、セクタ番号×512で読み込みと思っていたのですが、 <br> トラックが絡んでくるのですね。ＦＤの構造を調べてみます。 <br> 何も知らなさすぎですね... <>
わたもち<>sage<>03/03/19 18:50<> 調べててみると... <br>  <br> ttp://web.kyoto-inet.or.jp/people/pessi/PC9800HOWTO-16.htmlより <br>  <br>      容量          セクタサイズ セクタ数 ヘッド数 トラック(シリンダ)数 <br>  (1) 1232KB(1.2MB)   1024バイト 8        2        77 <br>  (2) 1440KB(1.44MB)  512バイト  18       2        80 <br>  (3) 1200KB(1.2MB)   512バイト  15       2        80 <br>  (4) 640KB           512バイト  8        2        80 <br>  (5) 720KB           512バイト  9        2        80 <br>  <br> これらのフォーマット形式のＦＤに、セクタ、ヘッド、トラックを指定して <br> 書き込み、読み込みをしなければならないということですね。 <br> セクタ、ヘッド、トラックを指定して書き込みが出来るソフトを探してきます。 <>
デフォルトの名無しさん<>sage<>03/03/19 19:11<> <a href="../test/read.cgi/tech/1042375466/737" target="_blank">&gt;&gt;737</a> <br> 先頭セクタあたりに、メディアのタイプを示すＩＤ（ディスクリプタ）もあるよ。 <br> あと、ドライブ側(FDC,BIOS含む)の制限にも注意な。1024バイトセクタ読める <br> ドライブは絶滅寸前かと思われ。 <br> ＞セクタ、ヘッド、トラックを指定して書き込みが出来るソフトを探してきます。  <br> よほど変なフォーマットで無い限り、アクセスしたいセクタ番号(通し番号)nとすると、 <br> セクタ：n % セクタ数 <br> サイド：n % (サイド数 * セクタ数) <br> トラック：n / セクタ数 / サイド数 <br> で求まるよ。%は剰余な。 <br> とりあえずこれで、セクタ数、サイド数、トラック数をパラメトリックにしておけば、 <br> 対応フォーマットを増やすのも楽だと思うが。 <br> HDDのCHS-LBA変換も基本的にはこれで済むと思うけどなぁ。 <br>  <br> 遅っいマイコンではそんな計算毎セクタごとにやってると、ディスクが回っちゃってて、 <br> １セクタ読むごとに、１回転しちゃうんだよな。だからシーク時だけ上記の計算して、 <br> あとはサイド、トラックの切り替わりだけどシーケンシャルに処理したりしたなぁ。 <br> セクタの配置をばらばらにする事もあった。 <br> そういや、トラック０だけサイド０しかないフォーマットとかもあったな。でも今時は <br> そんなメディア読めなくてもいいJARO <>
わたもち<>sage<>03/03/19 19:38<> 詳しい解説どうもありがとうございます。 <br> MONAの <br> ; fake boot parameter block(bpb) for RAWRITE <br> 部分の意味がわかってきました。 <br>  <br> 738さんのレスや ttp://kone.vis.ne.jp/diary/diaryb5.html を参考に考えると、 <br> ブートセクタ上の最初数十バイトにファイル構造を示すデータがある。 <br>  <br> ブートプログラム(ブートセクターに配置)にフォーマット形式等を埋め込んだもの boot.img <br> カーネルバイナリファイル kernel.img 、アプリケーションバイナリファイル app.img とすると、 <br> このファイルを boot.img kernel.img app.img の順にくっつけた os.img を dd等 で書き込み <br> カーネルの読み込みは セクタ番号(通し番号) 2～ から読み込むということでいいでしょうか。 <>
デフォルトの名無しさん<>sage<>03/03/19 20:11<> <a href="../test/read.cgi/tech/1042375466/739" target="_blank">&gt;&gt;739</a> <br> ブートの詳細（ソフトから見た場合）は、 <br> http://www37.tok2.com/home/nobusan/ <br> （リンクフリーではないらしいので注意） <br> を見ればよいかと。フロッピーも基本は同じだぁ。 <br> 違いは、先頭セクタをddして見比べれば、大体わかるっしょ。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/736" target="_blank">&gt;&gt;736</a> <br> ＞何も知らなさすぎですね...  <br> わたもちたんは、勘がいいみたいだから、知らないくてもすぐに知ってる状態に <br> なれるっしょ。勘が悪くて物知りバカの漏れみたいな人種からはうらやましいよ。 <br>  <>
デフォルトの名無しさん<>sage<>03/03/19 21:13<> 質問の答えを書き忘れてた。 <br> <a href="../test/read.cgi/tech/1042375466/739" target="_blank">&gt;&gt;739</a> <br> ＞このファイルを boot.img kernel.img app.img の順にくっつけた os.img を dd等 で書き込み  <br> ＞カーネルの読み込みは セクタ番号(通し番号) 2～ から読み込むということでいいでしょうか。  <br> 先頭セクタ=MBRにブートのためのコードを*まだ*置けない状態であれば、それでよいと思う。 <br> 実際にはもうちょっと後ろから実際のイメージを置くみたいだが。 <br> メディアからブートさせるには、先頭セクタに、カーネルイメージを読み出すコードを <br> 置いておく。そのコードがでかくて入りきらないなら、カーネルを読みだすためのコードを読み込むためのコードを置く。 <br> でも現状はたしか、GRUB使ってるんだよな。 <>
デフォルトの名無しさん<>sage<>03/03/19 21:20<> 激しく外出っぽいが、簡易的なFATの実装例を挙げておく。 <br> http://www.cqpub.co.jp/interface/download/contents.htm <br> の1998年9月号のFFSは移植性を意識して実装されてる。 <br> ライセンスが厳しいのでそのまま採用には難ありか。 <br>  <br> nobusanのページは細かすぎて全体がつかみづらいので、 <br> http://www.cqpub.co.jp/interface/toku/200107/toku1_4.htm <br> で頭の中を整理しておくのが良いかも知れぬ。 <>
FreeDOS教徒<>osage<>03/03/19 21:55<> ＞わたもち㌧ <br> Monaのfirstboot.asmを流用すれば？無粋かもしれませんが‥‥ <br> やってることはごく単純だし、煩わしければそんな方法でもいいかと。 <>
わたもち<>sage<>03/03/19 22:21<> <a href="../test/read.cgi/tech/1042375466/740" target="_blank">&gt;&gt;740</a>(741)さん <br> ジャンプコード、OEMラベル、セクタあたりバイト数、クラスタ当たりセクタ数、予約セクタ数 <br> FATの数、ルート最大エントリ数、全セクタ数、メディアディスクリプタ、FATのセクタ数、 <br> トラック当たりセクタ数、ヘッド数ぐらいまで(27bytes)、 <br> ブートプログラムの最初に追加したいと思います。 <br> それと、カーネル読み出し部分をヘッド、シリンダー、セクターを使用したものに書き直します。 <br> こんな感じでためしてみます。 <br> どうでもいいことですが、Monaのブートローダーを元に作った、ブートローダーを最初から使っています。 <br> GRUBは、ファイルシステムが理解できて、elf形式実行ファイルを直接カーネルとして <br> ロードしたりできるみたいなのですが、使い方が分からないので... <br>  <br> &gt;わたもちたんは、勘がいいみたいだから、知らないくてもすぐに知ってる状態に <br> &gt;なれるっしょ。勘が悪くて物知りバカの漏れみたいな人種からはうらやましいよ。 <br> えと、詳しいことはイイことです。たぶん私に思われていることは99%ぐらいウソな予感ｗ <>
わたもち<>sage<>03/03/19 22:22<> <a href="../test/read.cgi/tech/1042375466/742" target="_blank">&gt;&gt;742</a>さん <br> どうも資料の提示、ありがとうございます。 <br> 今は、バイト位置を指定してロードしているだけなので、 <br> 簡単なものでもいいからファイルシステムも考えていかないといけませんね。 <br>  <br> &gt;&gt;FreeDOS教徒さん <br> せっかく作ったので、もう少しトライしてみます。 <br> というか自前のブートローダーといっても、firstboot.asm を流用しているのにかなり近いです。 <>
デフォルトの名無しさん<>sage<>03/03/19 22:28<> <a href="../test/read.cgi/tech/1042375466/745" target="_blank">&gt;&gt;745</a> <br> ＞簡単なものでもいいからファイルシステムも考えていかないといけませんね。  <br> たぶんそうだろうと思って、FFSのリンクを示してみた。 <br> これから登る山の大きさが分かれば、気が楽になるってもんだと思ってね。 <>
FreeDOS教徒<>osage<>03/03/19 22:31<> <a href="../test/read.cgi/tech/1042375466/741" target="_blank">&gt;&gt;741</a> <br> &gt; でも現状はたしか、GRUB使ってるんだよな。 <br> それはNoNameのほうです。 <br>  <br> &gt;&gt;わたもち㌧ <br> そこらへんは自分で理解しておいた方がいいかもしれませんね。 <br> ttp://guriponn.tripod.co.jp/boot.asm <br> 参考までにどうぞ。 <>
741<>sage<>03/03/19 22:54<> <a href="../test/read.cgi/tech/1042375466/747" target="_blank">&gt;&gt;747</a> <br> ＞&gt; でも現状はたしか、GRUB使ってるんだよな。  <br> ＞それはNoNameのほうです。  <br> ヴォケてた。ｽﾏｿ。 <>
わたもち<>sage<>03/03/19 23:01<> &gt;&gt;FreeDOS教徒さん <br> どうも、非常に参考になります。 <br> ありがとうございます。 <br> OSの名前をOEMに入れないといけないですね。 <br> 日本の花ということでAsagaoとか考え中です。 <>
デフォルトの名無しさん<>sage<>03/03/19 23:30<> <a href="../test/read.cgi/tech/1042375466/749" target="_blank">&gt;&gt;749</a> <br> 日本の花って桜じゃないの？ <>
デフォルトの名無しさん<>sage<>03/03/19 23:49<> 狩人さんはおばかさん <>
わたもち<>sage<>03/03/19 23:53<> 桜だと、某有名萌えアニメにはまった人達が、たくさんソフトにその名前を <br> つけているようなので、わざとはずしました。 <br> 私もはまったその一人だったりｗ <br> このＯＳもそっち系にいきそうです。 <>
デフォルトの名無しさん<>sage<>03/03/20 00:06<> 　 　　_, ._  <br> 　 （　ﾟ Дﾟ） 　　ｶﾞｼｬ  <br> 　　( つ　O. __  <br> 　　と＿)_) （__(）､;.o：。  <br> 　　　　　　　　　　ﾟ*･:.｡  <br>  <>
デフォルトの名無しさん<>sage<>03/03/20 00:09<> 日本の花は菊だと思うが･･･ <br> （国会議員のバッジとか・・・） <>
デフォルトの名無しさん<>sage<>03/03/20 00:15<> いや、梅（ｒｙ <>
デフォルトの名無しさん<>sage<>03/03/20 00:17<> だから、国花だけじゃないっちゅーにｗ＜日本の花 <>
デフォルトの名無しさん<>sage<>03/03/20 00:32<> 日本の花じゃないけどBlueRoseとかどう？ <>
わたもち<>sage<>03/03/20 00:44<> <a href="../test/read.cgi/tech/1042375466/757" target="_blank">&gt;&gt;757</a> <br> 英語圏に住んでいたら、たぶんBlueRoseに変えるぐらいいイイ感じなのですが、 <br> とりあえず、ひらがなで書くようなものと、 <br> 萌え系のOSになっても大丈夫なような名前でお願いします。 <br> 注文が多くてスミマセン(^^; <>
わたもち<>sage<>03/03/20 00:48<> 「ひらがな」というより、日本的なものですね... <>
デフォルトの名無しさん<>sage<>03/03/20 00:55<> わた氏は本性を隠していたな。 <br> Asagao でいいと思う。開発コードにChihiroとかついてるご時世だし。 <br> 萌え系ってのはショックだが。 <br>  <>
わたもち<>sage<>03/03/20 01:02<> &gt;わた氏は本性を隠していたな。 <br> 隠しているつもりはなかったのですが... <br>  <br> &gt;萌え系ってのはショックだが。 <br> やっぱりだめですか... <br> SwingのようにLook&Feelを変えて使用してくださいと言ってみるテストｗ <>
デフォルトの名無しさん<>sage<>03/03/20 01:57<> ひなげし、に１票。 <>
デフォルトの名無しさん<>sage<>03/03/20 01:58<> 萌え系・・・ <br> 　 　　_, ._  <br> 　 （　ﾟ Дﾟ） 　　ｶﾞｼｬ  <br> 　　( つ　O. __  <br> 　　と＿)_) （__(）､;.o：。  <br> 　　　　　　　　　　ﾟ*･:.｡  <br>  <br>  <br> ﾏﾝｾｰ!! <>
デフォルトの名無しさん<>sage<>03/03/20 02:48<> ひまわり・・・・って気象衛星みたいになってきますたw <br> らいちょう・・・・って鉄道みたいになってきますたw <br>  <>
わたもち<>sage<>03/03/20 19:42<> FD読み込みに失敗の件は、結局Monaのものを流用させていただきました。 <br> Monaプロジェクトのみなさま、厚くお礼申し上げます。 <br>  <br> ＯＳの名前は、とりあえず(仮称)あさがおにしておきます。 <br> どうも、色々な名前ありがとうございました。 <br>  <br> また実機で動かないバグが...もう泣きそうです <br> Kernel.c の StartKernel -&gt; Init -&gt; PrintPagingOnMessage -&gt; Graphics_SetColor までは <br> 問題ないのですが、次の行Graphics_DrawStringで、いきなり落ちます。 <br>  <br> どういうわけか、Bochs でも特権レベル3のプログラムが動かなくなりました。 <br> 0xDFFFFFFCでページフォルトが起きているのですが、PageManagerではきちんとページを確保しています。 <br>  <br> 原因が思いつく方、お時間ありましたら、レスください。お願いします。 <br> ソースは前と同じにあります。 <br> ttp://www.geocities.co.jp/SiliconValley-PaloAlto/6802/os_10_debug.zip <>
デフォルトの名無しさん<>sage<>03/03/20 21:04<> ひがんばなでいいよ <>
デフォルトの名無しさん<>sage<>03/03/20 21:05<> <a href="../test/read.cgi/tech/1042375466/765" target="_blank">&gt;&gt;765</a> <br> いっそのこと下の部分はMonaに差し替えて、 <br> Monaで手のついてないGUIとかに専念しては？ <br> 「あさがお」はウィンドウシステムの名前にすればいいし。 <>
わたもち<>sage<>03/03/20 21:38<> <a href="../test/read.cgi/tech/1042375466/767" target="_blank">&gt;&gt;767</a>さん <br> このまま本当に作れるのかと言ったら、まだまだ乗り越えないといけない課題も多いですし、 <br> Linuxのように、カーネルにMonaを使い、ディストリビューションという形で <br> 作っていくというのもありと思います。 <br> でも、ＯＳのイメージと言うと、人それぞれだとは思いますが、 <br> ほとんどはＧＵＩの雰囲気で決まるところがあると思います。 <br> そんな一番おいしいところを頂くのも、気が引けます。 <br> どうにか原因究明をして、特権レベル３での実行ができるようにしたいと思います。 <>
デフォルトの名無しさん<>sage<>03/03/20 23:22<> <a href="../test/read.cgi/tech/1042375466/765" target="_blank">&gt;&gt;765</a>  <a href="../test/read.cgi/tech/1042375466/768" target="_blank">&gt;&gt;768</a> <br> ちらっと見ただけだが、 <br> 0xDFFFFFFCにアクセスしようとするのがおかしいよな。 <br> uint vga_memory_low = 0xE0000000; <br> に近いのでVRAM書き込みアドレスがあやしいかと思ったが、さして問題なさそう。 <br> となるとスタックを疑うか。 <br> Graphics_DrawString()の中でGraphics_DrawCharを呼ばずに、 <br> (g-&gt;data)[0] = 0x55; <br> とかやってみるのはだめかな。というのは、 <br> ・VRAMアクセスで問題 <br> ・その他の問題 <br> の切り分けが先決かと。 <br> ＞原因が思いつく方、お時間ありましたら、レスください。お願いします。  <br> PF発生時のIPはわからないのかな。レジスタ/スタックダンプも。 <br> っていうか、動かなくなった原因は、触ったことそのものだから、 <br> そこに問題があるというのが原則では？ <>
デフォルトの名無しさん<>sage<>03/03/20 23:34<> <a href="../test/read.cgi/tech/1042375466/765" target="_blank">&gt;&gt;765</a> <a href="../test/read.cgi/tech/1042375466/768" target="_blank">&gt;&gt;768</a> <br> フォルトのエラーコードはなんだったの？ <>
わたもち<>sage<>03/03/21 00:01<> どうもお手数かけます。 <br>  <br> 「VRAMアクセスで問題」でした。 <br> 0xE0000000へアクセスしてもなにも変化無く(落ちもしないし、描画もなし)、VGA_GetVram()だと落ちます。 <br> 0xE0000000と思いこんで実装している部分が無いか調べてみます。 <br>  <br> 0xDFFFFFFCでのページフォルトは、 <br> Bochs では 3rd (13) exception with no resolutionと表示されました。 <br> 14でないのは、無理にエラー処理されて、わけがわからない場所を実行するので、 <br> IDTへの登録と設定そして、割り込みは禁止にしてあります。 <br> だから、そもそも割り込みハンドラが無いと表示されていると思います。 <br> cr3 の値が0x00000000だったので、ページフォルトだと思いました。 <br>  <br> sp = 0xE0000000となるようにスタックを積んで、iretで制御を渡しているので、 <br> &lt;ProcessLoader&gt; <br> 80000000:55                   push   %ebp <br> 80000001:89 e5                mov    %esp,%ebp <br> 80000003:90                   nop     <br> 80000004:eb fe                jmp    80000004 &lt;_Main+0x4&gt; <br> 最初のpushで0xDFFFFFFCになってページフォールトだと思います。 <br> Process_Initの　PageManager_AllocatePage(p, 0xDFFFFFFC);　が <br> デバッグ用にあるので、ページフォルトは無いはずなのですが。 <>
わたもち<>sage<>03/03/21 00:04<> &gt;cr3 の値が0x00000000だったので、ページフォルトだと思いました。 <br> cr3の値が0x00000000でないからの誤りです。 <br>  <br> どうも、夜遅くまでバグを見つけてもらい感謝します。 <>
769<>sage<>03/03/21 00:20<> <a href="../test/read.cgi/tech/1042375466/772" target="_blank">&gt;&gt;772</a> <br> ＞どうも、夜遅くまでバグを見つけてもらい感謝します。  <br> バグを取ったのはﾁﾐ自身だ。ﾁﾐの勲章だ。 <>
わたもち<>sage<>03/03/21 00:33<> <a href="../test/read.cgi/tech/1042375466/769" target="_blank">&gt;&gt;769</a>さん <br> iretで、特権レベル３に行く直前まで無事、実機でも確認できました。 <br> ほんとうにどうもありがとうございます。 <br> 「VRAM書き込みアドレス」が怪しいというヒントが無ければ、一人では見つけられませんでした。 <br> バグ取りができたのも、すべて769さんのお陰です。 <br>  <br> VBE linear buffer形式 の 開始アドレスは 0xE0000000 では無く、 <br> その他の条件、少なくとも機種によって異なる。 <br> 偶然、Bochsでは意味ありげなきちんとしたアドレスの0xE0000000となっていた。 <br> ということが原因だったようです。 <br> これからこの辺を実装される方はお気をつけください。 <>
デフォルトの名無しさん<>sage<>03/03/21 01:36<> <a href="../test/read.cgi/tech/1042375466/774" target="_blank">&gt;&gt;774</a> <br> 外出っぽいが、 <br> ＞VBE linear buffer形式 の 開始アドレスは 0xE0000000 では無く、  <br> ＞その他の条件、少なくとも機種によって異なる。 <br> 漏れはVBE3.0しか見てないが、初期化してモードを選択してから、 <br> ModeInfoBlockを見ろと書いてあるように見えるな。 <>
デフォルトの名無しさん<>sage<>03/03/21 01:48<> <a href="../test/read.cgi/tech/1042375466/774" target="_blank">&gt;&gt;774</a> <br> うちの環境では、vga mode change err が出てしまいます。 <br> int 0x10 AH=4f02  <>
776<>sage<>03/03/21 01:54<> 途中で書き込みしてしまいました。 <br>  <br> bochs2.0.2を使ってます。 <br> int 0x10 AX=4f02が失敗というか、AHが4fのまま。。。 <br> あと、DIは設定しなくてもいいのですかね？ <br>  <br> bochsrcもつけてもらえると、原因がわかるかもしれません。 <>
わたもち<>sage<>03/03/21 10:49<> どうも有難うございます。 <br> Bochsのデフォルトの設定では、VGABIOS-elpin-2.40が使われているはずなので、 <br> VGABIOS-lgpl-latestを使用していただければ、vga mode change err はでないと思います。 <br>  <br> bochsrc.txtです。 <br> floppya: 1_44="pc\asagao.img", status=inserted <br> diskc: file="pc\c.img", cyl=20, heads=16, spt=63 <br> romimage: file=BIOS-bochs-latest, address=0xf0000 <br> vgaromimage: VGABIOS-lgpl-latest <br> megs: 32 <br> boot: a <br> vga_update_interval: 300000 <br> keyboard_serial_delay: 250 <br> floppy_command_delay: 500 <br> ips: 500000 <br> mouse: enabled=0 <br> private_colormap: enabled=0 <br> i440fxsupport: enabled=0 <br> time0: 0 <br> newharddrivesupport: enabled=1 <br> log: - <br> panic: action=ask <br> error: action=report <br> info: action=report <br> debug: action=ignore <>
わたもち<>sage<>03/03/21 11:33<> bochsrc入りのものと、昨日の無効なVGA領域に書き込んで落ちるバグを <br> 修正したものをupしました。 <br> 場所は同じです。 <br> ttp://www.geocities.co.jp/SiliconValley-PaloAlto/6802/os_10_debug.zip <>
777<>sage<>03/03/21 15:03<> <a href="../test/read.cgi/tech/1042375466/779" target="_blank">&gt;&gt;779</a> <br> 無事ブートできました。 <br> 3rd (13) exception with no resolutionで落ちましたけど。 <br>  <br> あと、本質的なことじゃなくて恐縮ですが、 <br> ImageMakerでイメージを書き換えるより、ヘッダバイナリ(？)みたいなのをつくって <br> boot+Headbinary+Kernel+Appとくっつけたほうがよくないですかね？ <br> もしくは、Kernel,Appコンパイル後、サイズ定義ファイルを生成して、boot.asmで読み込むとか。 <br>  <br> もうひとつ、やっぱり本質的じゃないですが、 <br> イメージ作成.batでパス設定してるのに、フルパス使ってるのは疑問ですが（ｗ <br> Kernel,Appとファイルも増えてるし、そろそろ、Makefileを作ったほうがいいかもしれませんね。 <>
わたもち<>sage<>03/03/21 15:28<> &gt;3rd (13) exception with no resolutionで落ちましたけど。 <br> Kernel.c の StartProcessLoader の iret でユーザープロセスに行ったとたん落ちます。 <br> 未だに原因わからずです。 <br>  <br> &gt;ImageMakerでイメージを書き換えるより、ヘッダバイナリ(？)みたいなのをつくって <br> &gt;boot+Headbinary+Kernel+Appとくっつけたほうがよくないですかね？ <br> &gt;もしくは、Kernel,Appコンパイル後、サイズ定義ファイルを生成して、boot.asmで読み込むとか。 <br> boot+Headbinary+image(Kernel,App等)の構成に、ユーザーレベルでの実行に成功したら <br> 変えるつもりです。 <br> Headbinaryには、各ファイルのサイズとimageでの位置を書いて、 <br> デイレクトリの無いファイルシステムのつもりで実装します。 <br> たぶん今後は、ImageMakerは、kernel, 作成したアプリ から image を <br> 生成するようなツールになるはずです。 <br>  <br> コマンドはかなり苦手なので、適当にbatファイル書いたら、コンパイルできたから <br> いいやという、いいかげんなものなので、つっこまないでくださいｗ <br>  <br> 一度、makefileは作ろうとしたことがあるのですが、失敗しました。 <br> そろそろ作らないとやっぱりいけないですよね... <br> 統合開発環境ばっかり使ってるとこんな人間になります。お気をつけて(を <>
デフォルトの名無しさん<>sage<>03/03/21 16:44<> <a href="../test/read.cgi/tech/1042375466/751" target="_blank">&gt;&gt;751</a> <br> やまどり追いかけて <>
デフォルトの名無しさん<>sage<>03/03/21 17:00<> <a href="../test/read.cgi/tech/1042375466/781" target="_blank">&gt;&gt;781</a> <br> ＞一度、makefileは作ろうとしたことがあるのですが、失敗しました。  <br> マクロとかmakeの方言を使わなければ簡単かと。 <br> [作りたいもの] : [材料1] [材料2] <br> 　　　　[材料1]と[材料2]から、[作りたいもの]を作るコマンド <br> をずらずら並べるだけでも、随分楽になるけどなぁ。 <br> クロスだと、 <br> install : all <br> 　　　　copy hoge.exe a: <br> とやっておくだけで、生産性の改善もできるとな。 <>
.oOo.<>sage<>03/03/21 17:07<> <a href="../test/read.cgi/tech/1042375466/781" target="_blank">&gt;&gt;781</a> <br> 一般保護違反や無効TSSの例外ハンドラを実装してみてください。 <br> 恐らく、無効TSSが原因だと思います。 <>
わたもち<>sage<>03/03/21 17:22<> <a href="../test/read.cgi/tech/1042375466/783" target="_blank">&gt;&gt;783</a>さん <br> どうもありがとうございます。 <br> もう一度きちんと調べて、makefileを作ってみます。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/784" target="_blank">&gt;&gt;784</a>さん <br> 割り込み番号 0x0D の例外ハンドラを実装してみて、 <br> TTSについて、もう一度チェックしてみます。 <br> どうもありがとうございます。 <br> これも経験と知識の差でしょうね... <br> 皆さんどうしてそんなに簡単にエラー見つけることが出来るのですか...(はぁ <>
わたもち<>sage<>03/03/21 17:31<> この際なので、0x13まで、どの例外かが分かる程度まで、実装します。 <>
.oOo.<>sage<>03/03/21 17:47<> わたもちさん <br> StartProcessLoaderの <br> push  $0x80000000 <br> を、 <br> push  $0x00000000 <br> に直してみてください <>
.oOo.<>sage<>03/03/21 17:56<> <a href="../test/read.cgi/tech/1042375466/787" target="_blank">&gt;&gt;787</a> に追加 <br> exe.lsの <br> .= 0x80000000 <br> も <br> .= 0x00000000 <br> に直してください。 <>
FreeDOS教徒<>osage<>03/03/21 18:06<> &gt;&gt;.oOo. <br> CSのベースアドレス‥‥？？ <>
わたもち<>sage<>03/03/21 18:22<> <a href="../test/read.cgi/tech/1042375466/787" target="_blank">&gt;&gt;787</a>(788)さん <br> 0x00000000から実行ということですよね？ <br>  <br> カーネルのページマップは <br> すべてのマップを 仮想アドレス = 物理アドレス としています。 <br>  <br> ユーザーのページマップは <br> 0x00000000～0x7FFFFFFF と VGA 領域が 仮想アドレス = 物理アドレス <br> 0x80000000～0xFFFFFFFF (VGA領域を除く)となってるので、 <br>  <br> ページマップを全体的に変えることになりそうですけど、 <br> 仮想8086モードを使わないとしても、無理なマップなのでしょうか... <br> 原因をつかんでおかないとまた同じことを繰り返しそうなので、 <br> エラー原因を御教授くださいませんか？お願いします。 <>
超先生＠ﾌﾞﾛｯｺﾘ株100円  </b>◆leaf/RYZgY <b><>sage<>03/03/21 18:23<> ＜後ろ頭＞-~~ ここはiret(d)命令でないと。PL3側のespもpushの必要あり。 <br>  <br> &gt; asm volatile ("push$0x00000020         \n\t" <br> &gt;　 "push$0xE0000000         \n\t" <br> &gt;　 "push$0x00000018         \n\t" <br> &gt;　 "push$0x80000000         \n\t" <br> &gt;　 "ret                        \n\t"); <br>  <>
.oOo.<>sage<>03/03/21 18:30<> わたもちさん <br> メモリーマップはこのままでもいいです。 <br> なぜ0かというとCS(0x1b)のベースが0x80000000だからです <br> つまり0x1b:0x0はリニアアドレスの0x80000000になるのです <br> push $0x80000000や.=0x80000000 <br> では0x1b:0x80000000＝0x100000000を指すことになります <>
わたもち<>sage<>03/03/21 18:34<> 超先生、ありがとうございます。 <br> 恐れ入りますが、新しくDLしてください。 <br> 前はret にしていたのですが、iret でPL=3に移ると書かれたものを見たので、 <br> iret に書き直してあります。スタック切り替えもされる思って書いたコードです。 <br>  <br> asm volatile ( <br> "push$0x00000023         \n\t"//20 <br> "push$0xE0000000         \n\t" <br> "push$0x00000000         \n\t" <br> "push$0x0000001B         \n\t"//18 <br> "push$0x80000000         \n\t" <br> "iret                       \n\t"); <br>  <>
わたもち<>sage<>03/03/21 18:47<> &gt;&gt;.oOo.さん <br> プロテクトモードに入ってすっかりベースのこと忘れ、そのことに気づいていませんでした。 <br> どうも有難うございます。 <br> CS.base 0x80000000 で、exe.ls = 0x00000000 とするか <br> CS.base 0x80000000 -&gt; 0x00000000 で exe.ls = 0x80000000 とすればいいのですよね。 <br>  <br> 0x80000000 以下で実行されると困るので、  <br> CS.base 0x80000000 で、exe.ls = 0x80000000 がよさそうですね。 <>
わたもち<>sage<>03/03/21 18:48<> &gt;CS.base 0x80000000 で、exe.ls = 0x80000000 がよさそうですね <br> CS.base 0x80000000 で、exe.ls = 0x00000000 ですた <>
わたもち<>sage<>03/03/21 22:12<> asm volatile("mov$0x0023, %ax        \n\t" <br> "mov%ax, %ds            \n\t" <br> "mov%ax, %es            \n\t" <br> "mov%ax, %fs            \n\t" <br> "mov%ax, %gs            \n\t"); <br> asm volatile ("push$0x00000023         \n\t"//20 <br> "push$0xE0000000         \n\t" <br> "push$0x00000000         \n\t" <br> "push$0x0000001B         \n\t"//18 <br> "push$0x00000000         \n\t" <br> "iret                       \n\t"); <br> と、 <br> 無効TSS 例外(#TS)(int 0x0A)、セグメント不在例外(#NP)(int 0x0B)、一般保護例外(#GP)(int 0x0D) <br> ページフォルト(int 0x0E) <br> を設定して実行してみても、 <br> 割り込み番号 0x0E、エラー原因のアドレス 0xDFFFFFFF、割り込みハンドラに入る前のeip = 0x00000000 <br> となってるようです。謎ｗ <br> 787,788も修正しました。どうもありがとうございます。 <>
わたもち<>sage<>03/03/22 12:47<> Bochsでも、実機でも動きました！ <br> ページテーブルのフラグの意味を取り違えていました。 <br> フラグを修正すると、動きましたぁ～～ <br> これで、ようやくOSらしくなってきましたｗ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/22 13:57<> ちょっとだけ復活します。 <br> わたもちさんはすごいなぁ。 <br>  <br> カーネルスレッド実装がだいぶ落ち着いてきました。 <br> スレッドというよりは、プロセスになってしまいましたが・・・ <br> コンテキストをkthread構造体に保存する形になりました。 <br> デバッグに四苦八苦したため、全ての流れを一応把握できているつもりです。 <br>  <br> セマフォを用いたロックもうまくいっている模様です。 <br> 依然見られたスタック破壊もなくなりだいぶ安定してきました。 <br>  <br> システムコールでkthread_yieldを簡易実装予定。 <br> 明日までに終わればいいなあ。 <>
わたもち<>sage<>03/03/22 14:38<> &gt;&gt;ひげぽんさん <br> &gt;わたもちさんはすごいなぁ。 <br> C++で、マイクロカーネルのＯＳを作るという先進的なことに取り組まれているようで、 <br> とても足元にも及びません。 <br> このスレッドの皆さんのおかげと、Monaのソース、LightConeさんのまとめ書き等があったことと、 <br> 時間が有り余ってるので、ここまで実装できました。 <br> でもまだまだ、キーボード割り込みもスキャンコードを取得しているだけですし、 <br> メモリ管理は一応作ってあるのですが、バグだらけの予感です。先は遠いです。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/22 14:46<> &gt;C++で、マイクロカーネルのＯＳを作るという先進的なことに取り組まれているようで、 <br> &gt;とても足元にも及びません <br> C++はともかく、マイクロカーネルは果てしなく遠いです（笑） <br>  <br> ページングも、ユーザーモードでのプロセス実行も実装できていないので <br> 参考にさせていただきます。m(__)m <>
デフォルトの名無しさん<>sage<>03/03/23 00:46<> いいかんじになってきたな。（いろんな意味で） <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/23 13:26<> mona_beta0.05a をリリースしました。 <br>  <br> 以下のサイトからダウンロード可能です。 <br> https://sourceforge.jp/projects/mona/files/ <br>  <br> 動作をテストしてくださったかたは、ぜひ以下の掲示板に <br> 動作報告にご協力をお願いいたします。 <br>  <br> http://monaos.hp.infoseek.co.jp/cgi-bin/2ch/test/read.cgi/developmona/1048392706/l50 <br>  <br> ・フロッピィディスクの読み書きの実装 <br>  <br> ・ぐりぽん氏によるグラフィックモード対応(半角英数カナフォント) <br>  <br> ・フォント表示のラッパー作成(GraphicalConsole) <br>  <br> ・割り込み処理の正常化 <br>  <br> ・カーネルスレッドの実装 <br> デモの'M' 'o' 'n' 'a'の文字は、それぞれ個別のスレッドが描画を担当しています。 <br> また、スレッド情報を表示しているのも別スレッドです。 <br>  <br> ・システムコール KTHREAD_YIELDの実装 <br>  <br> ・セマフォによる排他ロックの実現 <br>  <br> ・その他細かい修正 <>
デフォルトの名無しさん<>sage<>03/03/23 14:00<> ダウンロードページ開けないょぅ…。 <>
803<>sage<>03/03/23 14:16<> すみません、できますた。 <>
デフォルトの名無しさん<>sage<>03/03/24 00:38<> そろそろ、混乱しないように、Mona的な用語定義とかインタフェース仕様とかがあると便利かも。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/24 10:46<> 効率の良いファイルバッファのオリジナル数学理論です: <br>  <br> ttp://homepage2.nifty.com/nowsmart/Japanese/binary_integer.htm <br>  <br> 理論内容自体は自由にお役立て下さい。 <br>  <br> ただし、論文やソフトなどで、少しでも参考にしたり、利用したりした場合 <br> などは、必ず論文の参考文献として、または、プログラムのドキュメント <br> の一部や、ホームページなどで定理の発見者が私(LightCone)であることを <br> 明記するようにして下さい。 <>
デフォルトの名無しさん<>sage<>03/03/24 11:57<> <a href="../test/read.cgi/tech/1042375466/806" target="_blank">&gt;&gt;806</a> <br>  <br> うわ、見てて頭が痛くなる論文だ（笑） <br> てか、改めて数学はどんな分野よりシンプルでかつ難しいと感じました。 <>
LightCone </b>◆sSJBc30S5w <b><>sage<>03/03/24 12:04<> <a href="../test/read.cgi/tech/1042375466/807" target="_blank">&gt;&gt;807</a> <br> 証明に利用している数学的知識は非常に初歩的なものなので、実は <br> かなり簡単なんです。 <>
デフォルトの名無しさん<>sage<>03/03/24 13:50<> beta0.05a がリリースされて、久しぶりにサイトを見たが <br> SS めっちゃかっこよくなってんじゃん。リアルで『スゲー』とか言っちゃった <>
デフォルトの名無しさん<>sage<>03/03/24 14:13<> ttp://mona.sourceforge.jp/MPDN/document_room.html <br> ＞ [Web] はめて読む486の正誤表 <br> いやらしい…。 <br>  <br> それはさておきリンクが <br> ttp://www.ascii.co.jp/books/support/4-7561-0213-1/errata/ <br> に変わっているようです。 <>
デフォルトの名無しさん<>sage<>03/03/24 14:22<> あ、MonaBBSでも出てましたね。 <>
デフォルトの名無しさん<>age<>03/03/24 19:30<> β公開age <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/24 23:21<> <a href="../test/read.cgi/tech/1042375466/805" target="_blank">&gt;&gt;805</a>さん <br> &gt;そろそろ、混乱しないように、Mona的な用語定義とかインタフェース仕様とかがあると便利かも。 <br>  <br> そうですね。システムコールのドキュメントはいずれ用意しなければいけないと思っています。 <br> インターフェース仕様というのは具体的にはどのようなものでしょうか。 <br> ドライバとかでしょうか。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/809" target="_blank">&gt;&gt;809</a>さん <br> &gt;SS めっちゃかっこよくなってんじゃん。リアルで『スゲー』とか言っちゃった <br> それはありがとうございます。 <br> これからも精進いたしますのでよろしくお願いいたします。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/810" target="_blank">&gt;&gt;810</a>さん <br> &gt;ttp://www.ascii.co.jp/books/support/4-7561-0213-1/errata/ <br> &gt;に変わっているようです。 <br>  <br> ご報告ありがとうございます。 <br> 反映させていただきます。 <br>  <br>  <br>  <br>  <br>  <>
わたもち<>sage<>03/03/25 00:34<> (仮称)あさがおＯＳ最新版アップしました。 <br> ttp://www.geocities.co.jp/SiliconValley-PaloAlto/6802/os_12.zip <br> ユーザープロセスの実行、ページング、システムコール、色々なバグつぶしが主な変更です。 <br> 見た目には、ほとんど変化ないですｗ <br> 次ぐらいで、少しアプリケーション開発ができるようにしたいです。 <>
デフォルトの名無しさん<>sage<>03/03/25 00:39<> ｷﾀ━━━━━(ﾟ∀ﾟ)━━━━━!!!! <br> 乙カレー <>
わたもち<>sage<>03/03/25 00:56<> <a href="../test/read.cgi/tech/1042375466/815" target="_blank">&gt;&gt;815</a>さん <br> ありがとうございます。 <br> メモリの扱い、イベントの扱い、ファイルの扱い、ＧＵＩはどのように作るか等 <br> まだまだ決めることが多いので萌え風味を出せるまでしばらくかかると思いますが、 <br> できるだけ早く実現できるよう頑張ります。 <>
FreeDOS教徒<>osage<>03/03/25 21:26<> &gt;&gt;わたもち㌧ <br> 萌え進行は正直、ちょっと楽しみです。。 <br> がんばってください。 <>
デフォルトの名無しさん<>sage<>03/03/25 22:09<> <a href="../test/read.cgi/tech/1042375466/813" target="_blank">&gt;&gt;813</a> <br> 検索して見つかったものでよさげだった奴 <br> ttp://www.justsystem.co.jp/tech/atok/atokapi.pdf <br> APIのインタフェースを使う人に対して説明したものですね。 <br> APIの機能を詳しく説明したものを機能仕様書or機能設計書。 <br> 実装に関する部分まで詳しく説明したものを詳細設計所と、 <br> 呼んでいたような感じがする。 <br> インタフェース仕様書は、機能仕様所に含まれる場合もある。 <br> とりあえず、インタフェース仕様書があると、簡易OSサーバとか簡易アプリケーションとかを <br> 一般ユーザさんが少しずつ作り始めることができるかと。 <>
わたもち<>sage<>03/03/25 22:43<> &gt;&gt;FreeDOS教徒さん <br> ありがとうございます。意外にも好感を持ってもらい嬉しいです。 <br> 萌えっていうと正確にはどういうことを言うのかなと、 <br> ちょっと思っています。 <br> ファンシーとかなら大丈夫っぽいですが、キャラクター関係だと絵が苦手な罠。 <br> 主にアプリケーション開発環境はJavaでできたらいいなと考え中です。 <>
デフォルトの名無しさん<>sage<>03/03/26 00:17<> <a href="../test/read.cgi/tech/1042375466/819" target="_blank">&gt;&gt;819</a> <br> JavaVMってVMで使われているシステムコールをどうにかしたら、 <br> 性能は悪くても、動くようになるんですかねぇ。 <>
デフォルトの名無しさん<>sage<>03/03/26 00:45<> http://wabasoft.com/ <br>  <br> Wavaおすすめ。 <br> Javaの開発環境がつかえるし、機種依存部の分離がきちんとしてるので、比較的簡単に移植できる。 <>
わたもち<>sage<>03/03/26 01:14<> <a href="../test/read.cgi/tech/1042375466/820" target="_blank">&gt;&gt;820</a>さん <br> インタプリンタを移植する予定なので、煩雑な計算を行うものだと <br> スピードに問題が出てくると思いますが、一般的なGUIアプリケーションでは、 <br> 実用的なものになるようにできると思います。 <br>  <br> Javaが遅く、.NETが早い理由がおそらく解決のポイントだと思います。 <br> クラスライブラリーの作成の時 <br> １．スピードのネックになるところは、C,C++を使用する <br> ２．できるだけ抽象度を下げる <br> Javaのクラスライブラリーのように、互換性を大事にするためにできるだけJavaで作ることをせず、 <br> グラフィック関係はCで作ったものを薄くJavaでラップするぐらいの気持ちで作りたいと思います。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/821" target="_blank">&gt;&gt;821</a>さん <br> ありがとうございます。 <br> もともと、Wabaには目をつけていました^^ <br> クラスライブラリーについては、kaffeのクラスライブラリーを流用したいと思います。 <br> java.utilとかとても一人で作れるものじゃないですｗ <br> 欲を言えば、例外やスレッドが使えるインタプリンタがいいのですが、無理っぽいので <br> このへんで... <>
デフォルトの名無しさん<>sage<>03/03/26 08:26<> うお、こんな面白いスレがあったのか見落としてた。 <br>  <br> 外野のたわごとですが、アプリの動かないＯＳなんて誰も使わないので <br> たとえばエミュが軽快に動作するマイクロカーネルなんて面白いんじゃないかと思ってました。 <br>  <br> 上位（GUIとか）層を一から作るのも面白いとは思いますがそんなに広まることないので <br> 将来的にはWindowsもUnixアプリも動くといいなぁっとか。OS/2みたいに別レイヤで動くとかね。 <br>  <br> たわごと失礼。 <br>  <>
デフォルトの名無しさん<>osage<>03/03/26 13:00<> <a href="../test/read.cgi/tech/1042375466/823" target="_blank">&gt;&gt;823</a> <br> ﾁﾝｺｽのかほりがﾌﾟﾝﾌﾟﾝするなｗ <>
潜伏名無しさん<>sage<>03/03/26 13:19<> 萌えを目指すなら見た目重視にして暫くお茶を濁した方がいいかもしれない。 <br>  <br> と言ってみるテスト。 <>
デフォルトの名無しさん<>sage<>03/03/26 21:23<> <a href="../test/read.cgi/tech/1042375466/823" target="_blank">&gt;&gt;823</a> <br> ほら、もっと面白いスレ <br> http://pc.2ch.net/test/read.cgi/os/1042810549/ <>
わたもち<>sage<>03/03/26 22:10<> &gt;&gt;潜伏名無しさん <br> 名無したんですか？ <br> 潔くお茶を濁したように見せかけて、ｺｿｰﾘ内部はきっちりつくってみたりするかもしれない。 <br> とか言ってみるテストｗ <>
わたもち<>sage<>03/03/26 22:28<> はやとちり、スマソ。 <br> 読み間違えてますた。最初読んだとき、だいぶん、へこんでますた。 <br> もともと萌えキャラはかけないので、お茶を濁すのは無理ぽです。 <br> 助言ありがとです。 <>
わたもち<>sage<>03/03/26 22:36<> 以前も早とちりして、結果的に逆の意味にとれるもの書いてしまったので、 <br> 気をつけないと...ゴメンナサイ <>
デフォルトの名無しさん<>sage<>03/03/26 22:38<> 萌え指向ならいっそうの事、エージェント指向なOSを目指すのも面白いかも。 <br> 萌え萌えなキャラクターが、あなたの代わりにお仕事しますとか。 <br>  <br> エージェント指向なOSとは、（技術的に）どのようなOSか、漏れにも <br> よく判らないけど。 <>
わたもち<>sage<>03/03/26 22:53<> <a href="../test/read.cgi/tech/1042375466/830" target="_blank">&gt;&gt;830</a>さん <br> 「伺か」みたいなものを、ＯＳのシェルとして使うというぐらいなら、 <br> おそらく可能だと思います。 <br> Windows版でさえも作るのはかなり大変みたいです；； <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/26 23:00<> <a href="../test/read.cgi/tech/1042375466/818" target="_blank">&gt;&gt;818</a> <br> 情報ありがとうございます。 <br>  <br> Java VMの件面白そうですね。 <br> Monaで動くようになったら幸せですが・・・ <>
818<>sage<>03/03/27 01:05<> <a href="../test/read.cgi/tech/1042375466/832" target="_blank">&gt;&gt;832</a> <br> あまりこういうのは書いてないんで、どのように書くのがいいのかはわかりませんが、 <br> いろいろ見てみると、参考になると思います。 <br> 以前に、manコマンドで表示される形式で書けと言われたこともあります。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/830" target="_blank">&gt;&gt;830</a> <br> オブジェクト指向もよく理解できてない凡人ですが、 <br> ユーザからの要求をそのときのシステム状態(プロセス数とかCPU使用率など)に <br> 応じて要求受付モジュールがより細かい単純な仕事に分解し、優先度付けして、 <br> それぞれの仕事をするモジュールに渡す。ようなものだと思っています。 <br>  <br> エージェント指向は、オブジェクト指向に人工生命や人工知能の技術の一部(進化と自律性？)を <br> 取り入れたものでしょうかね。この辺りはエージェントの定義が多種多様なので詳しくはわかりません。 <br> とかいっても、プログラムしたことしかできないので、結局、オブジェクト指向になってしまう。 <br> （プログラムしたこと以外をされても困るし（ｗ <br>  <br> C++で記述されてるMonaならこれからの設計次第で、将来はエージェント指向OSにばけるかもしれませんねぇ。 <br>  <br> ＃まとまりのない長文で悪い。。。 <>
デフォルトの名無しさん<>sage<>03/03/27 07:22<> エージェントさんはおばかさんσ'A`)σ <>
デフォルトの名無しさん<>sage<>03/03/27 22:49<> <a href="../test/read.cgi/tech/1042375466/822" target="_blank">&gt;&gt;822</a> <br> スレからは外れるが... <br>  <br> &gt;  インタプリンタを移植する予定なので、 <br>  <br> 何故か、interpreter を「インタプリンタ」と書く人が多いんだが、どこをどう読んだら新型のプリンタみたいに聞えるんだろう...。 <>
デフォルトの名無しさん<>sage<>03/03/27 23:13<> <a href="../test/read.cgi/tech/1042375466/835" target="_blank">&gt;&gt;835</a> <br> よく見てますねぇ。まったく気付かなかった。 <br>  <br> 標準出力がプリンタってのを思い出してしまった（ｗ <>
わたもち<>sage<>03/03/27 23:34<> <a href="../test/read.cgi/tech/1042375466/835" target="_blank">&gt;&gt;835</a>,836さん <br> インタプリンタ、やっちゃいました^^ <br> 言われると、そうだったと気づくのですが、いつのまにか気づかずに、 <br> またやっちゃいそうですｗ <br> １０回言うと、いつのまにかインタプリタ...インタプリンタになってたり。((((；ﾟДﾟ)))ｶﾞｸｶﾞｸﾌﾞﾙﾌﾞﾙ <>
デフォルトの名無しさん<>sage<>03/03/27 23:41<> デスクトップをディスクトップと言うのと同じかも。 <>
デフォルトの名無しさん<>sage<>03/03/30 00:11<> <a href="../test/read.cgi/tech/1042375466/837" target="_blank">&gt;&gt;837</a> <br>  <br> ＞１０回言うと、いつのまにかインタプリタ...インタプリンタになってたり。((((；ﾟДﾟ)))ｶﾞｸｶﾞｸﾌﾞﾙﾌﾞﾙ <br>  <br> 1日1回､100回ぐらい連続で言うと､もはやプリンタと言うつもりでもプリタになったり､、チガウ! <br> 　これを 3日ほど続けるともう間違えなくなるYo-｡ <>
デフォルトの名無しさん<>ネタｽﾏｿsage<>03/03/30 09:23<> <a href="../test/read.cgi/tech/1042375466/835" target="_blank">&gt;&gt;835</a> <br> じゃあなんていうんだYO！ <>
デフォルトの名無しさん<>sage<>03/03/30 13:50<> <a href="../test/read.cgi/tech/1042375466/840" target="_blank">&gt;&gt;840</a> <br>  インタプリタ　（ン無し）　あ、ネタだった? <>
デフォルトの名無しさん<>sage<>03/03/30 20:04<> 質問ですが、このソースを元に、自分なりに改造してみても良いですか? <>
840<>sage<>03/03/30 21:36<> <a href="../test/read.cgi/tech/1042375466/841" target="_blank">&gt;&gt;841</a> <br> ネタって書いたけどマジでどこが違うのかわからんかった。 <br> インタプリ "ン" タなんて言う香具師いるんだな。どっちもインタプリタだとしかよめんかった。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/840" target="_blank">&gt;&gt;840</a> <br> ttp://mona.sourceforge.jp/ <br> ここからソースとかたどって見ました？ <br> MONAはGPLですよ <>
840<>sage<>03/03/30 21:39<> わかると思うけど<a href="../test/read.cgi/tech/1042375466/840" target="_blank">&gt;&gt;840</a>あてじゃなくて<a href="../test/read.cgi/tech/1042375466/842" target="_blank">&gt;&gt;842</a>です <br> 連続意味なしｽﾏｿ <>
デフォルトの名無しさん<>sage<>03/03/30 22:49<> <a href="../test/read.cgi/tech/1042375466/844" target="_blank">&gt;&gt;844</a> <br> あ、そうなんですか。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><><>03/03/31 21:58<> ファイルシステム構築準備中です。 <br> 概要が以下のURLにありました。 <br> http://www.spa.is.uec.ac.jp/~kinuko/slidemaker/fs-survey/ <br>  <br> 一番最初の実装としてはFAT12, UFSあたりが現実的かとは思うのですが <br> 迷い中です。 <br>  <br> Nonameの（ ´ -｀）さんも触れられていましたが <br> Solarisや、linuxのVFSのようなものをMonaでも想定しています。 <br> 全く一緒かどうかは分かりませんが・・・ <br>  <br> MEGのように独自ファイルシステムが良いのか・・・ <br>  <br> ファイルシステムの資料をあさり中です。 <>
デフォルトの名無しさん<><>03/03/31 22:12<> <a href="../test/read.cgi/tech/1042375466/846" target="_blank">&gt;&gt;846</a> <br> BFSはどうでしょう。 <br> BeOSで採用されているファイルシステムです。 <br>  <br> ttp://www.zdnet.co.jp/magazine/behive/hacker17b.html <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/03/31 22:22<> <a href="../test/read.cgi/tech/1042375466/847" target="_blank">&gt;&gt;847</a> <br> BFSですか、ありがとうございます。 <br> FSも、少しずつDataBaseとの垣根がなくなってくるのかもしれませんね。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/04/05 00:24<> floppyの論理ブロックアドレスとトラック・ヘッド・セクタの対応が <br> よくわからないので資料を探しています。 <br>  <br> ファイルシステムの実験はMonaと切り離して実行できるのがうれしいですね。 <>
デフォルトの名無しさん<>sage<>03/04/05 00:37<> http://wiki.osdev.info/index.php?%5B%5BCHS%A4%C8LBA%5D%5D <br>  <br> 書いて見ました。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/04/05 00:48<> ＞＞850 <br>  <br> どなたかはわかりませんがありがとうございます。 <br> どうも知っている人っぽいのですが、本当にありがとうございます。 <>
デフォルトの名無しさん<>sage<>03/04/05 23:11<> 作ってみようスレのURLすごいな <br> あんなにOSあったんだな <>
わたもち<>sage<>03/04/05 23:12<> ファイルシステムとか本当なら作らないといけないのですが、 <br> 何を思ったかＧＵＩ部分を作ってみました。 <br> すべてのコンポネントイベントで再描画したり、かなりいいかげんな作りなので、動きがおかしいです。 <br> エミュレータというか、クロスプラットホームのＧＵＩライブラリーを動かしていると言った方が <br> 近いような気もします＾＾ <br>  <br> エミュレータ(Java1.4以上がないと動きません) <br> ttp://www.geocities.co.jp/SiliconValley-PaloAlto/6802/AsagaoEmulator.jar <br> 上のエミュレータを実行させた画面 <br> ttp://www.geocities.co.jp/SiliconValley-PaloAlto/6802/emu.png <br>  <br> 実行させたプログラム <br> public static void main(Application app) { <br> 　　　　Frame f1 = new Frame(app); <br> 　　　　f1.setTitle("テスト１"); <br> 　　　　f1.setSize(400, 200); <br> 　　　　f1.setVisible(true); <br>  <br> 　　　　Frame f2 = new Frame(app); <br> 　　　　f2.setTitle("テスト２"); <br> 　　　　f2.setSize(300, 300); <br> 　　　　f2.setVisible(true); <br>  <br> 　　　　app.run(); <br> } <br>  <br> スレッドの作成は出来ない予定なので、シングルスレッドで動かすために、ちょっと.NETっぽくなりましたｗ <>
デフォルトの名無しさん<>sage<>03/04/06 13:52<> <a href="../test/read.cgi/tech/1042375466/853" target="_blank">&gt;&gt;853</a> <br> これは素晴らしい <br> 用途から言うとNWSOSの互換ライブラリを思い出したよ <br> 内容は全然違うけど（ｗ <br>  <br> MEGのristiaの狙ってるのとも重なるかも <br> みんなJava好きだね～ <>
わたもち<>sage<>03/04/06 14:22<> OSを作ってみようのリンクすごい量になってますね＾＾ <br>  <br> 色々修正したものを同じ場所にアップしました。 <br> ttp://www.geocities.co.jp/SiliconValley-PaloAlto/6802/AsagaoEmulator.jar <br>  <br> まだ、システムコールはどういうのが必要かとか、色々作ってみないと分からないと思って <br> 作ってみたものなので、結構いいかげんなところもありますが、全部のソースです。 <br> ttp://www.geocities.co.jp/SiliconValley-PaloAlto/6802/EmuSource.zip <br>  <br> イベントディスパッチ部分のきちんとした実装が良く分からないので、 <br> もう少しほかのGUIライブラリーを調べてみます。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/854" target="_blank">&gt;&gt;854</a>さん <br> ありがとうございます。 <br> 気をつけてクラスライブラリーを作れば、ＯＳを選ばず動くものが作れるのと、 <br> Java言語自体の良さもあって好きな人がいっぱいいるんでしょうね。 <>
デフォルトの名無しさん<>sage<>03/04/06 14:49<> <a href="../test/read.cgi/tech/1042375466/855" target="_blank">&gt;&gt;855</a> <br> &gt; イベントディスパッチ部分のきちんとした実装が良く分からないので、 <br> &gt; もう少しほかのGUIライブラリーを調べてみます。 <br> これはめっちゃ言語に依存する部分。 <br> 自前イベントループで自前ディスパッチなんかしなくていいように <br> 隠蔽することを前提にすると…… <br>  <br> Cだとコールバックしかない。 <br> C++だとコールバックはきつ過ぎるのでメッセージマップで隠蔽とか、(MFC) <br> 独自プリプロセッサでグルーコードを自動生成するとか、(Qt) <br> 似たようなことをテンプレートでやり繰りするとか、(Gtk--) <br> 継承必須で仮想関数だけでやっちゃうとか、(wxWindows) <br> みんなめっちゃ苦労してる。 <br> Javaだと仮想関数とインターフェースでのリスナーを使うのがAWT/Swing。 <br> 原理的には同じようなことはC++でもできる。(libqv) <br> コールバックをやろうと思えばリフレクションで出来るだろうけど <br> 実際にそれを実行に移したものは見たことない。 <br> C#だと委譲が強力でオブジェクト指向とコールバックがうまく両立している。 <br> このC#の仕様があってWindows Formsは単純かつ強力に仕上がっている。 <br> （ちなみにJ#はJavaに委譲が追加されている） <br> Objective-CはC#の状況に似てるかな。 <br>  <br> とにかく言語に依存するよ。C#が一番扱いやすいと思ﾜﾚﾒ。ｗ <>
わたもち<>sage<>03/04/06 15:13<> <a href="../test/read.cgi/tech/1042375466/856" target="_blank">&gt;&gt;856</a>さん <br> 書き方が悪かったです。お手数かけました。 <br> イベントの処理を書く部分は、 <br> MFCではたぶんオーバーライドで、 <br> Javaではインタフェースを使った委譲モデルで、 <br> C#ではデリゲーション(メソッドオブジェクトみたいなものっぽい)を使った委譲モデル <br> というのは知ってるのですが、 <br> 困っているのは実際イベントキューからどのようにイベントを伝えるかです。 <br> ComponentEventはそのまま発生元がイベントの伝え先なのですが、 <br> MouseEventやKeyEventはどこへ伝えようかなと、なかなか良い方法が考えつきません。 <br>  <br> ちなみに私はＣ＃のデリゲーションは嫌いだったり。 <br> class MainFrame() extends Frame { <br> MainFrame() { <br> addMouseListener(new MouseEventHandler()); <br> addMouseMotionListener(new MouseMotionEventHandler()); <br> } <br> class MouseEventHandler() extends MouseAdapter{ <br> } <br> class MouseMotionEventHandler() extends MouseMotionAdapter{ <br> } <br> } <br>  <br> こんな感じでイベントごとにグループわけできないからＣ＃でたくさんイベントハンドラ書くと意味不明になりますｗ <br> 構造体とかデリゲーションとかいらない機能多すぎです。Ｃ＃ではきちんとした内部クラスが書けません。 <br> MouseEventHandlerの中から直接MainFrameのフィールドにアクセスしたりできないのです。 <br> 言語の好みは人それぞれなんですけどね。 <>
わたもち<>sage<>03/04/06 15:31<> 宗教戦争っぽくなるので、C#とJavaの言語的な所はこのへんで。 <br>  <br> 今は <br> MouseEventのTYPE_MOUSE_PRESSED、TYPE_MOUSE_RELEASEDは最前面にあるウィンドウだけに <br> TYPE_MOUSE_MOVEDは全部のウィンドウに <br> ComponentEventはイベントの発生元に <br> イベントキューからイベントを送るということにしているのですが、 <br> 色々考えるとこれだとまずいですしね...難しいです <>
デフォルトの名無しさん<>sage<>03/04/06 15:33<> <a href="../test/read.cgi/tech/1042375466/857" target="_blank">&gt;&gt;857</a> <br> &gt; MFCではたぶんオーバーライドで、 <br> オーバーライドじゃない部分のメッセージマップがミソです。 <br>  <br> &gt; 困っているのは実際イベントキューからどのようにイベントを伝えるかです。 <br> Javaモデルそのものなので、AWT/Swingのソースを見れば一発では？ <br>  <br> &gt; 言語の好みは人それぞれなんですけどね。 <br> ここは必読です。 <br> http://itpro.nikkeibp.co.jp/members/NBY/techsquare/20030117/3/ <>
デフォルトの名無しさん<>sage<>03/04/06 15:53<> ＞宗教戦争っぽくなるので、C#とJavaの言語的な所はこのへんで。 <br> ﾜﾗﾀ <>
デフォルトの名無しさん<>sage<>03/04/06 16:14<> 引き際が(・∀・)ｲｲ! <>
デフォルトの名無しさん<>sage<>03/04/06 21:17<> 好き勝手なこと言った挙句反論は受け付けませんなんてのは <br> まともな人間のすることとは思えんが <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/04/06 21:38<> 今日はFDCDriver::write(int lba, byte* buf)のデバッグをしてました。 <br>  <br> 実機,VirtualPCではうまく動いているようです。 <br> EOTパラメータではまりそうになりました。 <br>  <br> bochsでは相変わらず <br>  <br> write終了後の割り込みがこない <br> writeコマンド後のリザルトフェーズ時にMSRがreadyにならない。 <br>  <br> という二つの現象が見られ、気持ち悪いです。 <br> 後者の現象は前者を無視してリザルトフェーズにいったのが悪いのかも <br>  <br> 他のOS作者さんたちがどのように対応しているかが知りたいところです。 <>
デフォルトの名無しさん<><>03/04/07 09:35<> <a href="../test/read.cgi/tech/1042375466/856" target="_blank">&gt;&gt;856</a> <br> &gt; Objective-CはC#の状況に似てるかな。 <br> 似てるのかな～？ <br>  <br> http://wwwa.dcns.ne.jp/~nito/OSPT/frameospt.html <>
bloom<><>03/04/07 09:40<> http://www.agemasukudasai.com/bloom/ <>
デフォルトの名無しさん<><>03/04/07 16:23<> http://kwatch.tripod.co.jp/macosx/objc.html <>
デフォルトの名無しさん<>sage<>03/04/08 01:36<> <a href="../test/read.cgi/tech/1042375466/864" target="_blank">&gt;&gt;864</a>, <a href="../test/read.cgi/tech/1042375466/866" target="_blank">&gt;&gt;866</a> <br> Actionの扱いが委譲そっくり。 <>
デフォルトの名無しさん<>sage<>03/04/08 09:00<> <a href="../test/read.cgi/tech/1042375466/859" target="_blank">&gt;&gt;859</a> <br> &gt; ここは必読です。  <br> &gt; http://itpro.nikkeibp.co.jp/members/NBY/techsquare/20030117/3/  <br> C++やRuby, MixJuiceなどと比較しており、 <br> C#との比較のことがほとんど書かれていないし <br> Javaの欠陥といってもC#にも共通する欠陥が多いね。 <>
デフォルトの名無しさん<>sage<>03/04/08 09:19<> OSの話をしてるかと思えばJavaとC#の話？ <br> OS作りにはVM上で動くJavaやC#よりも <br> C/C++のほうが適していると思ったりする。 <br>  <br> もうそんな考え方古い？ <>
デフォルトの名無しさん<>sage<>03/04/08 11:45<> 古いとかじゃなくてそもそもOSはJavaやC#では書けません。 <>
デフォルトの名無しさん<>sage<>03/04/08 18:49<> <a href="../test/read.cgi/tech/1042375466/870" target="_blank">&gt;&gt;870</a> <br> 条件を限定しないと荒れるよ。 <>
デフォルトの名無しさん<>sage<>03/04/09 03:49<> <a href="../test/read.cgi/tech/1042375466/863" target="_blank">&gt;&gt;863</a> <br> ＞write終了後の割り込みがこない  <br> mona-0.0.5.tar.gzのソースMFDCDriver.cppを見た。 <br> たぶん、確認済みだと思うのであるが、 <br> 　　while(!waitInterrupt()); <br> は中身が、 <br> 　　return interrupt_; <br> だけだな。ちゃんと実行コードは生成されてるのかな。 <br> 特に、MFDCDriver::writeでは、直前に <br> 　　interrupt_ = false; <br> があるからな。お子ちゃまが書いたコンパイラでもニフラムで消し去れるな。 <br> 割り込みで書き書きする変数にはvolatile付けとけ。C++でも使えるJARO。 <br>  <br> DMA使ってるんなら、DMAの完了でええやんけ、と思うのは無責任かな。 <br> 参考文献：「トラ技スペシャルN.11 フロッピ・ディスク・インターフェイスのすべて」 <>
872<>sage<>03/04/09 05:03<> <a href="../test/read.cgi/tech/1042375466/863" target="_blank">&gt;&gt;863</a> <a href="../test/read.cgi/tech/1042375466/872" target="_blank">&gt;&gt;872</a> <br> 連続カキコｽﾏﾇ <br> あらためて、mona.tar.gzをﾀﾞｳｿしてソースを見た。FDCDriver.cpp <br> -Sオプションでアセンブルリスト見たが、volatileは関係なさそうだな。自信無し。 <br> 普段gcc/g++使ってないから悪ぃね。でもvolatileはつけといた方が良いよ。 <br>  <br> で、「割り込みがこない」と判断した理由は何かな？ <br> 　　bool FDCDriver::waitInterrupt()  <br> で、数えてるcounterのカウントアップかな？ <br> でもこいつは「waitInterrup()を呼び出す全て」でカウントしちゃうよ。 <br> シークしてるあいだに5000くらい行っちゃわない？たとえbochsでも。 <br> しかもリセットされないしな。 <br> 　　void FDCDriver::waitPrint(const char* msg)  <br> みたいに、500000くらいにした方がいいんじゃないかなぁ。 <br> bochsでDOS6使ってるけど、フロッピーはやたら遅いしなぁ。 <br> あれは明らかに1シークあたり、1回転してしまってる感じだけどなぁ。 <br> (1回転=0.1秒オーダー) <br> bochsのソースもちらと見たが、DMA転送完了時に <br> 割り込みを起こすつもりのように見えるけどなぁ。 <br> まぁ、漏れなんかの書くことは気にせずに、他の作者さんの情報を待った方が <br> いいだろうな。うんうん。 <>
デフォルトの名無しさん<>sage<>03/04/09 16:52<> <a href="../test/read.cgi/tech/1042375466/870" target="_blank">&gt;&gt;870</a> <br> 書けないって断言されると書きたくなっちゃう &#9829; <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/04/10 01:12<> <a href="../test/read.cgi/tech/1042375466/872" target="_blank">&gt;&gt;872</a>さん <br> &gt;は中身が、 <br> &gt;　　return interrupt_; <br> &gt;けだな。ちゃんと実行コードは生成されてるのかな。 <br>  <br> すいません。そこまでは思いつかなかったです。 <br> 確かにその可能性があるので調べる必要があると思います。 <br>  <br> &gt;DMA使ってるんなら、DMAの完了でええやんけ、と思うのは無責任かな。 <br> &gt;参考文献：「トラ技スペシャルN.11 フロッピ・ディスク・インターフェイスのすべて」 <br>  <br> おお。ありがとうございます。そのような完了判定方法もあるのですね。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/04/10 01:17<> &gt;で、「割り込みがこない」と判断した理由は何かな？ <br> &gt;　　bool FDCDriver::waitInterrupt() <br>  <br> 現在の最新版のソースでは <br> http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/mona_v1.0/src/FDCDriver.cpp?rev=1.11&content-type=text/vnd.viewcvs-markup <br>  <br> console_-&gt;printf("\ninterrupt:"); <br> interrupt_ = true; <br>  <br> となっているので割り込みが来ていないことが分かっております。 <br>  <br> &gt;みたいに、500000くらいにした方がいいんじゃないかなぁ。 <br>  <br> それも考えたのですが、CPUに依存してしまうのでどうも <br> 採用しかねています。 <br>  <br> &gt;まぁ、漏れなんかの書くことは気にせずに、他の作者さんの情報を待った方が <br> &gt;いいだろうな。うんうん。 <br>  <br> いえいえ。ソースまで見ていただいてありがとうございます。 <br> これからもよろしくお願いいたします。 <>
872<>sage<>03/04/10 09:38<> <a href="../test/read.cgi/tech/1042375466/876" target="_blank">&gt;&gt;876</a> <br> ＞console_-&gt;printf("\ninterrupt:");  <br> ＞interrupt_ = true;  <br> ＞となっているので割り込みが来ていないことが分かっております。 <br> 　　void FDCDriver::interrupt() <br> のことだな。trueにするやつは他にもいて、counterのカウントアップがそれだな。 <br> まだ、割り込みが来ないとは言い切れてないよな。 <br> 現状だと、「interrupt:」と表示されずに、waitInterrupt()が抜ける、だけであって、 <br> それをもって割り込みが来ないと断言してはいかん。 <br> できれば、何十秒か何分か待って、なおかつDMAの転送も終わって、ディスケットに <br> データが書き込まれているのに、なお「interrupt:」が表示されないことを <br> 確認すべき。第一、読み込みでも割り込み起こらないの？ <br> 「期待した以上に遅れて割り込みが起こるかもしれない」という可能性を捨ててはいけない。 <br> 実際問題bochsの挙動に問題があろのだとしても、上記のようなデバッグでは <br> 問題が切り分けできていないとおもわれ。 <br> 本当に正しくは、何秒以内に割り込みが起こるはずかを見積もるべきであるが、bochsでは <br> できない。充分すぎるくらい長い時間を想定すべきかと。 <br> ハードウェアリトライという恐ろしいコトバを記しておこう。 <br>  <br> ＞それも考えたのですが、CPUに依存してしまうのでどうも  <br> counterをタイムアウトの意味で使ってるなら、counterの実装自体がCPU依存であり、 <br> カウントアップ値で5000を選ぶかどうかは上記デバッグの考え方に基づくべき。 <br> bochsでカウンタ5000回回すのに、1秒もかからないような気がする。かかるのか？ <br>  <br> ＞おお。ありがとうございます。そのような完了判定方法もあるのですね。  <br> いや、十ン年前の話だし、8ビット機での話だからな。あてにはならん。 <br> あの本は、98について書かれてるから、一層あてにならん。 <br> それでは申し訳ないので、ついでにWin2000のDDKのFDC.Cを見てみた。 <br> やっぱり書き込み完了後に割り込みがくることを期待するコードになってた。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/04/10 22:38<> &gt;&gt;「期待した以上に遅れて割り込みが起こるかもしれない」という可能性を捨ててはいけない。 <br>  <br> なるほど。これは重いお言葉です。 <br> 確かにその通りだと思います。 <br>  <br> &gt;やっぱり書き込み完了後に割り込みがくることを期待するコードになってた。 <br>  <br> わざわざ確かめていただきありがとうございます。 <br>  <br> まずは問題の切り分けから週末にはじめていきたいとおもいます。 <>
872<>sage<>03/04/11 00:20<> <a href="../test/read.cgi/tech/1042375466/878" target="_blank">&gt;&gt;878</a> <br> 毎度思うが、ひげタンは人当たりがソフトな書き方らねぇ。 <br> ＞まずは問題の切り分けから週末にはじめていきたいとおもいます。  <br> 読み書き自体は動作していて、実機では問題ないなら、TODOリストにだけのっけておいて <br> 放置する戦術もありだと思ふ。 <br> そのうち通りすがりでその道の達人が指摘してくれるかもよ。 <br> ただし、TODOリストが公開される必要はあるが。 <br> doxyなら、@todo Help達人 て書いときゃいいんじゃないかな。 <>
デフォルトの名無しさん<>sage<>03/04/11 02:11<> 初めてここみてギャグスレかと思ったらみんなマジだった・・・ネット上で以心伝心なんてちょっと感動 <br> 漏れもさんかしようかなぁ <>
デフォルトの名無しさん<>sage<>03/04/11 09:45<> ぶっちゃけそんな喪前が好きだ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/04/11 23:16<> &gt;読み書き自体は動作していて、実機では問題ないなら、TODOリストにだけのっけておいて <br> &gt;放置する戦術もありだと思ふ。 <br>  <br> そうですね。今日実験してみたところ、３時間ほど放置しましたが <br> やはり割り込みはきませんでした。（仕事しながらだったのでちょっと自身なしですがｗ) <br>  <br> TODOリストにあげておいて、後回しがいいかもですね。 <br>  <br> いろいろとありがとうございました。m(__)m <>
872<>sage<>03/04/11 23:35<> 役に立てなくて申し訳ないね・・・がんがってちょ。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/04/11 23:51<> <a href="../test/read.cgi/tech/1042375466/882" target="_blank">&gt;&gt;882</a> <br> s/自身/自信 <br>  <br> <a href="../test/read.cgi/tech/1042375466/872" target="_blank">&gt;&gt;872</a>さん <br>  <br> いろいろありがとうございます。 <br> 私なんかより、数倍できる方のようで <br> 自分の力不足を痛感します。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/04/13 22:36<> やっとFAT12の実装に取り掛かった模様。 <br>  <br> ぐりぽん氏に教えてもらった <br> http://www.vector.co.jp/soft/data/hardware/se016321.html <br> の資料で奮闘中。 <br>  <br> ファイルシステムの開発はMonaとできるだけ切り離して行えるよう <br> 別環境を用意して開発中です。 <br> インターフェースDiskDriverが、その役割を担っています。 <br>  <br> ルートディレクトリのエントリの取得と512byte以下のファイルの中身が取得できました。 <br>  <br> ファイルシステムでどこまでのパラメータ等をメモリに持つかを迷います。 <br>  <br> 必要なときに読むか、一度読み込んで変更があるまではキャッシュしておくか等迷いどころです。 <br>  <br> ファイルバッファのキャッシュは、更に上位のレイヤーで行おうと目論んでいるのですが <br> 果たしてそこまで行くかどうか。 <>
デフォルトの名無しさん<>sage<>03/04/14 09:37<> こんなのみっけた <br> https://sourceforge.jp/projects/muramura/ <br>  <>
デフォルトの名無しさん<>sage<>03/04/15 23:24<> ひさしぶにりこの板に来て、初めてこのスレ見つけた。 <br> なんだか俺が忘れてしまったものを思い出したみたいだよ。 <br> 昔はコンピューターをいじくっているだけで楽しかったのに、いまは仕事になっちゃった。 <br> おまえいらの熱意に乾杯。 <br> モナープロジェクトを全部読み直して、俺も参加準備するぜ！ <br>  <>
デフォルトの名無しさん<>sage<>03/04/16 00:30<> <a href="../test/read.cgi/tech/1042375466/887" target="_blank">&gt;&gt;887</a> <br> がんばれー。 <br> 漏れも参加準備しようかな。 <>
デフォルトの名無しさん<>sage<>03/04/16 00:53<> <a href="../test/read.cgi/tech/1042375466/887" target="_blank">&gt;&gt;887</a>, <a href="../test/read.cgi/tech/1042375466/888" target="_blank">&gt;&gt;888</a> <br> PC1台ありゃ済むよ。一体、何を準備するの？ <>
887<>sage<>03/04/16 03:01<> <a href="../test/read.cgi/tech/1042375466/889" target="_blank">&gt;&gt;889</a> <br> いろいろ準備はあるぜ。 <br> もう俺はクロックやペアを考えながらアセンブラでかけなくなっちまったし、 <br> makeファイルもかけねえ。 <br> VisualStudioとかJBuilderとかのIDEがないとプログラムが書けない屁たれになっちまった。 <br> あとな、 <br>  <br> 　そ　も　そ　も　モ　ナ　ー　プ　ロ　ジ　ェ　ク　ト　が <br>  <br> 　　　　　ど　う　い　う　も　の　か　わ　か　っ　て　な　い <>
デフォルトの名無しさん<>sage<>03/04/16 07:42<> <a href="../test/read.cgi/tech/1042375466/890" target="_blank">&gt;&gt;890</a> <br> 深く考えなくていいでない？昔、アセがかけていたなら思い出すでしょう。 <br> 当たって砕けてください。 <br>  <br> makeは、 <br>  <br> &lt;生成物&gt; : &lt;材料1&gt; &lt;材料2&gt;... <br> &lt;tab&gt;コマンド１ <br> &lt;tab&gt;コマンド２ <br>  <br> 例） <br> hello : hello.o <br> gcc -o hello hello.o <br>  <br> hello.o : hello.c hello.h <br> gcc -c hello.c <br>  <br> すべての材料の更新日付と生成物の更新日付を比較して、生成物のほうが <br> 古かったらコマンドを実行する。 <br> これとマクロの使い方を知っていればすぐ使えると思う。 <br> マクロ（特別なマクロも）は他の人よろしく。↓ <br>  <>
デフォルトの名無しさん<>sage<>03/04/16 23:43<> 　　　　　　　　　　　　　　､, <br> 　　　　　　　　　　　　　　ヾi＼　　　　　 _､- <br> 　    lヽ　　　　　　　　　　　ヾlll＼ _,.-‐'''llllllllヽ <br> 　　　|ヾﾞl　　　　　　,,,,,,,,,;;;;;;;;;;;）lllllllllllllllllllllllllllllヽ <br> 　     |ヾﾞl　 ;;;;;;;;;;;;;;;;_､-‐'''^^~~￣￣￣￣￣￣~~｀^^^ ｰ--､ <br> 　　　 |ヾﾞ ,.､--‐‐''´　　　　　　　　　　　 　 ___　　l i　/⌒ｌ　 ヽ <br> 　　　 |　（ー----－－― ―― ''^^^~ =二三/　 l l　ヾ'''ﾉ __,ノ <br> 　　　 |//｀ｰ‐--､,._____　　　　　　　　　　　゛ﾞ　　　l ﾄ､_　　￣｀ゝ <br> 　     |ﾉ,/　/////////~｀^ヽ､_____　　　　 ___,,..､､､ﾄ-ﾃ‐‐‐''￣ <br> 　　　|ﾉ/　 ｀~^ー‐--､////ﾉlllllllノ~｀^^^ﾌll／ <br> 　    |ノ　　　　　　 　 ￣￣/lll／　　　 /／ <br> 　　　　　　　　　　　 　 　 /／　　　 　 ｀ <br> 　　　　　　　　　　　　　　`' <>
デフォルトの名無しさん<>sage<>03/04/17 02:23<> マグロかよ!! <br> とか言いたかった… <>
デフォルトの名無しさん<><>03/04/17 07:36<> &gt;&gt;891-<a href="../test/read.cgi/tech/1042375466/893" target="_blank">&gt;&gt;893</a> <br> ﾜﾗﾀ <>
山崎渉<>（＾＾）<>03/04/17 15:12<> （＾＾）                           <>
デフォルトの名無しさん<><>03/04/19 01:21<> 山崎上げ <>
山崎渉<>（＾＾）sage<>03/04/20 03:41<> 　　 ∧＿∧  <br> 　　（　　＾＾ ）＜ ぬるぽ（＾＾）                                  <>
デフォルトの名無しさん<>sage<>03/04/22 19:45<> ﾋｹﾞﾎﾟｿ、最近のすすみ具合はどんなもんですか？ <br>  <br>  <br> 突然だが、Gentoo 1.4 rc_4 の Live CD がものすごく格好良いす。 <br> 参考になればと思って言ってみますた。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/04/22 22:44<> <a href="../test/read.cgi/tech/1042375466/898" target="_blank">&gt;&gt;898</a> <br> FAT12のドライバをMonaとは切り離して実装中です。 <br> 読み込みに関しての仕様をやっと把握できたのでがりがり実装中です。 <br>  <br> ただ仕事が最近も忙しいため、昔ほどは思うようには時間が取れない状況です。 <br> やる気だけは、あるのですが・・・ <br>  <br> 一応以下の感じで進む予定です。 <br>  <br> ファイルシステムの実装 <br> ユーザーモードの実装 <br> ファイルシステムをユーザーモードで呼び出すことにより <br> マイクロカーネル化 <br> シェルの実装 <>
名無したん＠ｵﾚﾝｼﾞﾍﾟｯｺｰ<>sage<>03/04/22 23:24<> 名無したんが鮮やかに900げっとヽ(｀ー´)ノ <>
デフォルトの名無しさん<>sage<>03/04/24 15:57<> ど素人のプログラム全然判りませんな人間ですが、質問していいデスか？ <br>  <br> ファイルシステムって絶対決めちゃわないといけないんですか？ <br> よく判らないんですが、例えば MacOS X ではバーチャルボリウムレイヤがあって、その上で動いてますよね？ <br> だから、バーチャルボリウムレイヤが対応していればどんなファイルシステム上でも一応動作できるようになってますよね？ <br> そう言う風には出来ないんですか？ <br>  <br> って言うのがどれほど大変な事なのかも判らないやつなんですけどね。 <br>  <br> 変な事書いてすんません。 <>
デフォルトの名無しさん<>sage<>03/04/24 23:11<> <a href="../test/read.cgi/tech/1042375466/901" target="_blank">&gt;&gt;901</a> <br> &gt;  そう言う風には出来ないんですか？ <br>  <br> いくらでもできるだろ。 <br> と言うか今時の OS は、複数のファイルシステムをサポートするのは珍しくない｡ <br> 当然どっかのレイヤーで仮想化していると思うよ｡ <br>  <br> それに仰々しい名前を付けて知ったか君にネタを提供するかだけの差だと思う｡ <>
デフォルトの名無しさん<>sage<>03/04/24 23:46<> &gt;よく判らないんですが、例えば MacOS X ではバーチャルボリウムレイヤがあって、その上で動いてますよね？ <br> &gt;だから、バーチャルボリウムレイヤが対応していればどんなファイルシステム上でも一応動作できるようになってますよね？ <br> バーチャルボリウムレイヤはあくまでも「バーチャル」なので、論理的な存在だということ。 <br> どっかで物理的なフォーマットを用意する必要があって、OSのレベルだとそれも用意しておく必要あるってこと。 <br> 実際にファイルにアクセスして読み書きすることもOSの仕事のうちだからね。こんなところでOK? <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/04/27 01:18<> 多忙につき開発低迷中。以前ソース整理をしました。 <br> その結果、現在のMonaのソース行数は以下のようになっています。 <br> stl_portは、私の書いたソースではありませんので*.cpp, *.hが <br> 本当の行数ですね。 <br>  <br> SLOC&nbsp;&nbsp;&nbsp;&nbsp;Directory&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SLOC-by-Language&nbsp;(Sorted) <br> 42535&nbsp;&nbsp;&nbsp;src_stlport&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ansic=42533,sh=2 <br> 2889&nbsp;&nbsp;&nbsp;&nbsp;src_top_dir&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cpp=2323,asm=566 <br> 957&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src_include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cpp=678,ansic=279 <br> 92&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src_FreeBSD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ansic=92 <br> 57&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tools&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cpp=57 <br>  <br> Totals&nbsp;grouped&nbsp;by&nbsp;language&nbsp;(dominant&nbsp;language&nbsp;first): <br> ansic:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;42904&nbsp;(92.21%) <br> cpp:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3058&nbsp;(6.57%) <br> asm:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;566&nbsp;(1.22%) <br> sh:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;(0.00%) <br>  <>
デフォルトの名無しさん<>sage<>03/04/28 22:23<> 正直、Monaの進行速度には不満がないと言えば嘘になるけど、 <br> 自分が参加して引っ張る余力もないから批判はできないねぇ…… <>
デフォルトの名無しさん<>sage<>03/04/29 18:19<> <a href="../test/read.cgi/tech/1042375466/892" target="_blank">&gt;&gt;892</a> <br> どうでもいいが、それホントにマグロか？ <>
デフォルトの名無しさん<>sage<>03/04/29 21:29<> 鰯？ <>
デフォルトの名無しさん<>sage<>03/04/29 23:13<> 環境ホルモンで死にかけのｼｰﾗｶﾝｽみたいだ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/04/29 23:15<> <a href="../test/read.cgi/tech/1042375466/905" target="_blank">&gt;&gt;905</a> <br>  <br> たしかに、Monaの開発速度は以前より遅くなっていると思います。 <br> 多忙なせいなのもありますし、ひげぽんの怠慢もあると思います。 <br> 何とかモチベーションを維持してがんばります。 <br>  <br> というわけで、Monaにはまだ組み込まれていませんが <br> FAT12ドライバーの読み込み部がなんとなくできましたｗ <br>  <br> ドライブレターをまだ決めてないのですが一応ファイル内容が読み込めています。 <br> 以下テストサンプルコード <>
ひげぽん </b>◆Ngzcp/NZpA <b><><>03/04/29 23:16<> &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!fat-&gt;initilize())&nbsp;{ <br>  <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;errorNo&nbsp;=&nbsp;fat-&gt;getErrorNo(); <br>  <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(errorNo&nbsp;==&nbsp;FAT12::BPB_ERROR)&nbsp;printf("BPB&nbsp;read&nbsp;&nbsp;error&nbsp;\n"); <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(errorNo&nbsp;==&nbsp;FAT12::NOT_FAT12_ERROR)&nbsp;printf("NOT&nbsp;FAT12&nbsp;error&nbsp;\n"); <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(errorNo&nbsp;==&nbsp;FAT12::FAT_READ_ERROR)&nbsp;printf("NOT&nbsp;FAT12&nbsp;error&nbsp;\n"); <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;printf("unknown&nbsp;error&nbsp;\n"); <br>  <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;error&nbsp;*/ <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-1; <br> &nbsp;&nbsp;&nbsp;&nbsp;} <br>  <br> &nbsp;&nbsp;&nbsp;&nbsp;printf("fat&nbsp;initilize\n"); <br>  <br> &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!fat-&gt;open("SOMEDIR\\DIR1\\DIR2\\DIR3\\DIR4",&nbsp;"SOME.CPP",&nbsp;FAT12::READ_MODE))&nbsp;{ <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("open&nbsp;failed"); <br> &nbsp;&nbsp;&nbsp;&nbsp;} <br>  <br> &nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(fat-&gt;readHasNext())&nbsp;{ <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;byte&nbsp;buf[512]; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fat-&gt;read(buf); <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;512;&nbsp;i++)&nbsp;printf("%c",&nbsp;(char)buf[i]); <br> &nbsp;&nbsp;&nbsp;&nbsp;} <>
デフォルトの名無しさん<>sage<>03/04/29 23:22<> Monaの他のOSと比べてのアドバンテージは何？ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/04/29 23:26<> ネタとして <br> 気分だけ盛り上がって、放置気味のファイルを公開します。 <br> 何かMonaでの有用な使い道が見つかったり、改良してくれる人が <br> いたりしたらうれしいです。 <br>  <br> BitMap.cpp/h <br> 　ファイルシステム実装勉強中に勢いあまって作ったものの使用していない <br> 　メモリ管理やら、クラスタ管理やらに使えるかも。 <br>  <br> rtc.cpp <br> 　リアルタイムクロックで、日付時刻を取得しようとしつつ <br> 　いつの間にか忘れてました。FAT12書き込みのときまでには必要ですね。 <br>   Monaのほかの部分と結構独立しているので誰か、完成させてくれないかなあ(ﾎﾞｿ <br>  <br> SystemInfo.cpp <br> 　cpuidという命令を使用して、現在Monaを実行しているCPUが何者なのかを <br> 　知ろうとする機能を持たせようとしました。 <br>   ベンダーIDを取得したところで別の機能の実装に入ってしまいました。 <br> 　これもうまく拡張すればいろいろ便利かも。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/04/29 23:31<> <a href="../test/read.cgi/tech/1042375466/911" target="_blank">&gt;&gt;911</a> <br> &gt;Monaの他のOSと比べてのアドバンテージは何？ <br>  <br> 今現在は全然アドバンテージにはなっていないですが <br>  <br> カーネルがNASM, GCCを用いて少量のアセンブラと大量のC++で実装されていること。 <br> オブジェクト指向をカーネル実装にも適用しようとしている。 <br>  <br> UNIXクローンや、POSIX準拠を目指しているわけではないので <br> フットワークが軽い? <br>  <br> あたりでしょうか。 <>
デフォルトの名無しさん<>sage<>03/04/30 10:43<> <a href="../test/read.cgi/tech/1042375466/911" target="_blank">&gt;&gt;911</a> <br> ひげぽんの人柄､　これにつきる <br>  <>
デフォルトの名無しさん<>sage<>03/04/30 10:52<> いま、<a href="../test/read.cgi/tech/1042375466/914" target="_blank">&gt;&gt;914</a> がいいこと言った｡ <br> 特に初めの方は、またいつものネタスレかよ... という感じで叩かれもしたけど、きちんと対応してたからここまで来れたんだと思う｡ <br> 俺も色々勉強になったし、何よりやる気が重要であることを再確認させられた｡ <br> 厨房化が著しいこの板で一番まともなスレだと思う｡ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/05/02 23:54<> <a href="../test/read.cgi/tech/1042375466/914" target="_blank">&gt;&gt;914</a>,915さん <br> なんだかとても恐縮です。m(__)m <br>  <br> 今日は <br> <a href="../test/read.cgi/tech/1042375466/912" target="_blank">&gt;&gt;912</a> <br> で書いていたBitMapクラスを <br> FAT12のクラスタ管理に使用するようにしました。 <br>  <br> FAT12.cppは、読み込み部だけでソースが10KBなので <br> 他の機能と比較してわりとコード量が多めですね。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/05/05 23:10<> FAT12の実装状況ですが <br>  <br> createFile,changeDirectory, read, writeの実装が <br> なんとなく完了しました。 <br> 事前に用意していたBitMapクラスが意外と重宝しました。 <br>  <br> 残すは <br> bool FAT12::rename(const char* from, const char* to) {return true;} <br> bool FAT12::remove(const char* file) {return true;} <br> bool FAT12::removeDirecotry(const char* name) {return true;} <br> bool FAT12::makeDirectory(const char* name) {return true;} <br>  <br> ですが、優先度が低いため後回しにされる可能性が高いです。 <br> とりあえず来週は、FAT12.cppをカーネル本体に組み込むテストと <br> りファクタリングに時間をとる予定です。 <br>  <br> 少しでも対応するファイルシステムを増やしたいので <br> ファイルシステムに共通のインターフェースを考えて行きたいです。 <br> Solarisのvnodeインターフェースメソッドのようなものの簡易版ですね。 <br> read, write, open, close, mkdir, rmdir, rename, link, unlink <br> seek, fsync, ioctl, create <br> あたりでしょうか。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/05/05 23:20<> 忘れないように覚書です。 <br>  <br> FAT12#writeで <br> ファイルサイズが小さくなる場合に、クラスタを開放する処理を <br> 入れ忘れました。しまった・・・ <>
名無したん<>sage<>03/05/07 15:04<> ﾋｹﾞﾎﾟｿｶﾞｿﾊﾞﾚ(ﾟдﾟ)!! <>
デフォルトの名無しさん<><>03/05/07 21:17<> はじめまして、私もFAT12実装中です＾＾ <br> ところでヒゲポンさんは、WINとの相性は <br> 考えます？ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/05/07 23:30<> <a href="../test/read.cgi/tech/1042375466/920" target="_blank">&gt;&gt;920</a> <br> 相性とは <br> FAT12@MONAで読み書きしたディスクがWindowsでも <br> 読み書きできるということですか? <br>  <br> そうであれば、多少は気にしています。 <br>  <br> OSとしての互換性、例えば実行ファイル形式等は <br> 特に相性は考えていません。 <br>  <br> FAT12の実装をしていて個人的に思ったのですが <br> 既存のファイルシステムのドライバ?が欲しいのであれば <br> 習作以外では、誰かのを作ったのを流用するほうが賢いと思いました。 <br>  <br> 私は素人なので勉強になったのですが <br> OSのほかの部分に時間を割いたほうがいい場合もあるかなと。。。 <>
デフォルトの名無しさん<><>03/05/07 23:45<> んでできたんすか？ <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/05/07 23:47<> 読み書きは出来ました。ドライバレベルですが。 <br> Windows上からも一応認識してくれている模様。 <br> ただ918のやつはまだ対応していません。m(__)m <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/05/07 23:54<> <a href="../test/read.cgi/tech/1042375466/919" target="_blank">&gt;&gt;919</a> <br> ありがとうございます。 <br> もし興味がありましたらMonaプロジェクトへ是非（笑） <>
デベロッパー名無したん<>sage<>03/05/07 23:56<> MEG-OSの次回策はMonaのプラグインということでよろしいか？ <>
デフォルトの名無しさん<><>03/05/07 23:57<> いろんな意味でアフォウだがその精神はすごいなぁ。 <br> 「作ろう」って言うだけ逝って逃げるウンコとは違うようだ。 <br> 最終的にはＷＩＮＤＯＷＳなしで直に起動できればおもろいんだがなぁ。 <br> ってそれが目標ですか？ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/05/08 00:04<> <a href="../test/read.cgi/tech/1042375466/926" target="_blank">&gt;&gt;926</a> <br> &gt;最終的にはＷＩＮＤＯＷＳなしで直に起動できればおもろいんだがなぁ。 <br> &gt;ってそれが目標ですか？ <br>  <br> こんにちは。Monaは、いちおうWindowsなしで起動しますよ。 <br> ただそれは、Monaがすごいとかではなく <br>  <br> 兄貴分?のNWSOS,OSASK,MEG-OSでもとっくに実現されていることです。 <br> OSとしての機能を以下に追加していくかが課題です。 <br>  <br> いまはMonaは最低限の機能さえ実装できていないので <br> まずはそこからです。m(__)m <>
デフォルトの名無しさん<>sage<>03/05/08 00:51<> 近々Monaの上でMona用のアプリが作れて動かせるようになったら色々やってみたいですね（ｗ <br> 開発も大変でしょうががんばってください。応援してます。 <br> （へっぽこプログラマな私には何もお手伝いできませんが・・） <>
デフォルトの名無しさん<>sage<>03/05/08 12:17<> &gt; FAT12の実装をしていて個人的に思ったのですが  <br> &gt; 既存のファイルシステムのドライバ?が欲しいのであれば  <br> &gt; 習作以外では、誰かのを作ったのを流用するほうが賢いと思いました。 <br> 完全なマイクロカーネルにまでは時期尚早ですが、 <br> 何らかのダイナミックロードというかプラグインが出来るようにして、 <br> OSサーバとして他のフリーなOSのコードがそのまま動くようにしておくと、 <br> （そのままと言ってもサーバ部分の再コンパイルは必要ですが） <br> いくらでも潰しが利くんじゃないかと思います。 <br>  <br> 別にPOSIX準拠が目的でなくても、 <br> DarwinみたいにBSDレイヤを動かせば自動的にBSDになりますし、 <br> Mona独自サーバを動かせば独自モードになります。 <br> それがマイクロカーネルですから。 <br>  <br> DarwinのソースとFreeBSDのソースを比較してみると色々と面白いです。 <br> 古いDarwin 1.3.1はVPCでも動くはずです。 <br>  <br> &gt; 私は素人なので勉強になったのですが  <br> &gt; OSのほかの部分に時間を割いたほうがいい場合もあるかなと。。。  <br> 純粋に効率から言うとそうですね。 <br> 見たところ一部FreeBSDのコードが入っているみたいですが、 <br> こうやってつなぎで取り合えず突っ込んでおいて、 <br> 後で純血(?)を追求できる余裕があるときにでも <br> リプレースしてしまうというのも手です。 <>
デフォルトの名無しさん<>sage<>03/05/08 17:45<> 全然関係ない質問ですがよろしくお願いします。 <br> bochsでエミュレートする時fd.cという名前のファイルをリンクしたバイナリから起動したら <br> 3rdExceptionを吐いてしまいます。 <br> そこでfd.c-&gt;aiueo.cに変えてみると今度は動くのです。 <br> bochsに禁止語句か何かあるのでしょうか？ <br> エラーはLOCK PREFIX UNALLOWEDと出ています。 <br> bochs 2.02 on linuxでの話です。 <>
デフォルトの名無しさん<>sage<>03/05/08 23:19<> エェーPOSIX準拠目指してよぉ <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/05/09 00:02<> <a href="../test/read.cgi/tech/1042375466/928" target="_blank">&gt;&gt;928</a>さん <br> &gt;近々Monaの上でMona用のアプリが作れて動かせるようになったら色々やってみたいですね（ｗ <br> &gt;開発も大変でしょうががんばってください。応援してます。 <br>  <br> ありがとうございます。道のりは長いですががんばります。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/929" target="_blank">&gt;&gt;929</a>さん <br> &gt;OSサーバとして他のフリーなOSのコードがそのまま動くようにしておくと、 <br> &gt;（そのままと言ってもサーバ部分の再コンパイルは必要ですが） <br> &gt;いくらでも潰しが利くんじゃないかと思います。 <br>  <br> なるほど参考になります。 <br>  <br> &gt;DarwinのソースとFreeBSDのソースを比較してみると色々と面白いです。 <br> &gt;古いDarwin 1.3.1はVPCでも動くはずです。 <br>  <br> おお。面白そうですね。 <br> ソースを探してみたのですがちょっとどの部分がcoreなのか分かりませんでした。 <br> ttp://www.opensource.apple.com/darwinsource/1.3.1/index.html <br>  <br> &gt;後で純血(?)を追求できる余裕があるときにでも <br> &gt;リプレースしてしまうというのも手です <br>  <br> なるほど同感です。 <br>  <br> <a href="../test/read.cgi/tech/1042375466/931" target="_blank">&gt;&gt;931</a>さん <br> &gt;エェーPOSIX準拠目指してよぉ <br>  <br> 現在はPOSIX準拠は視野に入っていません。 <br> というか詳しく知らないのが現状です。 <br> もっと勉強してから考えさせてください。 <>
デフォルトの名無しさん<>sage<>03/05/09 00:11<> <a href="../test/read.cgi/tech/1042375466/931" target="_blank">&gt;&gt;931</a> <br> 自分で頑張れ。 <br> ここはそういう板 (のはず) だ。 <br>  <>
920<><>03/05/09 00:19<> &gt;FAT12@MONAで読み書きしたディスクがWindowsでも <br> &gt;読み書きできるということですか? <br> そうですね＾＾読み書きだったら、FATの考えかただけ <br> わかれば作れるのですが、WINだとどうなっているか？と <br> 考えると、少し行き詰ってしまうんですよね＾＾ <br>  <br> &gt;OSとしての互換性、例えば実行ファイル形式等は <br> &gt;特に相性は考えていません。 <br> 実行ファイル・・・考えたくない事項ですなぁ＾＾； <br>  <>
デフォルトの名無しさん<>sage<>03/05/09 00:54<> <a href="../test/read.cgi/tech/1042375466/932" target="_blank">&gt;&gt;932</a> <br> &gt; ソースを探してみたのですがちょっとどの部分がcoreなのか分かりませんでした。 <br> xnuです。 <br>  <br> あと以前誰かが言ってましたが、 <br> 引用符"&gt;"と引用文の間に空白を入れておかないと <br> 数字が行頭に来たときにリンクだと誤認識されてうざいです。 <>
デフォルトの名無しさん<>sage<>03/05/09 01:05<> <a href="../test/read.cgi/tech/1042375466/932" target="_blank">&gt;&gt;932</a> <br> &gt; 現在はPOSIX準拠は視野に入っていません。  <br> &gt; というか詳しく知らないのが現状です。  <br> &gt; もっと勉強してから考えさせてください。  <br> POSIXを自前実装するのは時間の無駄と思う。 <br> DarwinやRT-Machと同じようにFreeBSDをOSサーバ化して乗っけた方が簡単。 <br> 別にLinuxでやってもいいけど。(MkLinux) <br> というかはっきり言ってそうでもしないと個人レベルの作業量じゃ無理。 <br> # RT-Machのページは閉鎖されちゃったみたいで残念……。 <>
デフォルトの名無しさん<>sage<>03/05/09 18:14<> なぜα版品質にもなってないのにβ名乗ってるの？＞Mona <br> αとかβとかの意味わかってる？＞ﾋｹﾞﾎﾟｿたん <>
デフォルトの名無しさん<>sage<>03/05/09 18:45<> <a href="../test/read.cgi/tech/1042375466/937" target="_blank">&gt;&gt;937</a> <br> とりあえず、知ったかぶるのは止めといた方がいいと思うよ。 <>
デフォルトの名無しさん<>sage<>03/05/09 18:55<> <a href="../test/read.cgi/tech/1042375466/938" target="_blank">&gt;&gt;938</a> <br> グローバルスタンダードの時代に俺用語はまずいだろ <>
デフォルトの名無しさん<>sage<>03/05/09 19:01<> <a href="../test/read.cgi/tech/1042375466/939" target="_blank">&gt;&gt;939</a> <br> 俺用語はまずくて俺OSはいいわけですか。そうですか。 <>
デベロッパー名無したん<>sage<>03/05/09 19:08<> (ﾟдﾟ) ﾊﾙﾀﾞﾅｧｵｲ <>
デフォルトの名無しさん<>sage<>03/05/09 19:18<> どう見てもビル君の俺OSですが何か？ <br> ttp://pc.watch.impress.co.jp/docs/2003/0509/kaigai01.htm <>
デフォルトの名無しさん<>sage<>03/05/09 20:40<> 新スレの季節だねぇ <>
デフォルトの名無しさん<><>03/05/09 21:11<> そうだねぇ。 <>
デフォルトの名無しさん<>sage<>03/05/10 00:12<> <a href="../test/read.cgi/tech/1042375466/942" target="_blank">&gt;&gt;942</a> <br> 作業効率が上がりそうなＯＳだねぇ。 <>
デフォルトの名無しさん<>sage<>03/05/10 01:41<>  <br> 　　演　出　過　多 <br>  <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/05/10 11:50<> &gt;&gt; 935 <br> &gt; xnuです。 <br>  <br> ありがとうございます。いま登録しました。 <br>  <br> &gt; あと以前誰かが言ってましたが、 <br> &gt; 引用符"&gt;"と引用文の間に空白を入れておかないと <br> &gt; 数字が行頭に来たときにリンクだと誤認識されてうざいです <br>  <br> 失礼しました。m(__)m <br>  <br> &gt;&gt; 937 <br> &gt; なぜα版品質にもなってないのにβ名乗ってるの？＞Mona <br> &gt; αとかβとかの意味わかってる？＞ﾋｹﾞﾎﾟｿたん <br>  <br> するどいですねぇ。 <br> まああまり気にしないでください。（笑） <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/05/10 11:58<> &gt;&gt;の使い方間違えました。 <br> ごめんなさい。 <br>  <br> お詫び?に久々にdoxygenドキュメントを公開します。 <br> よくよむとMonaの全貌がうっすらと見えるかもしれません。 <br>  <br> ttp://mona.sourceforge.jp/document/ <>
デフォルトの名無しさん<>sage<>03/05/10 12:15<> <a href="../test/read.cgi/tech/1042375466/948" target="_blank">&gt;&gt;948</a> <br> 乙彼～ <br>  <br> ところでちょっとした疑問なんですが何故日本語で書かないんですか？ <br> それだけでも厨房にとっては読みやすさが月とすっぽんです～ <br> 海外の開発者を呼び込もうって言うならそもそもsf.jpじゃなくてsf.net使うべきだし…… <>
デフォルトの名無しさん<>sage<>03/05/10 12:20<> <a href="../test/read.cgi/tech/1042375466/949" target="_blank">&gt;&gt;949</a> <br> doxgenで日本語を扱いづらいからだと思う <br> このぐらいの英語で困る人もあまり居ないだろうし <>
デフォルトの名無しさん<>sage<>03/05/10 12:29<> 新スレ: OSを作ろうpart6 <br> http://pc2.2ch.net/test/read.cgi/tech/1052537020/ <>
デフォルトの名無しさん<>sage<>03/05/10 12:31<> <a href="../test/read.cgi/tech/1042375466/950" target="_blank">&gt;&gt;950</a> <br> ttp://www.miv.t.u-tokyo.ac.jp/~yabuki/tip/doxygen/doxygen.htm <br> 日本語のコメントはHTMLドキュメントの中で文字化けしますが、 <br> ファイルDoxygenでHTML_HEADERを設定しておくとこの現象は起こらないようです。 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/05/10 17:40<> <a href="../test/read.cgi/tech/1042375466/949" target="_blank">&gt;&gt;949</a> <br> &gt; ところでちょっとした疑問なんですが何故日本語で書かないんですか？ <br> &gt; それだけでも厨房にとっては読みやすさが月とすっぽんです～ <br> &gt; 海外の開発者を呼び込もうって言うならそもそもsf.jpじゃなくてsf.net使うべきだし…… <br>  <br> そうですね。一応海外の開発者を呼び込もうという目論見でしたが <br> 呼び込まれていません。（笑） <>
わたもち<>sage<>03/05/11 11:27<> &gt;&gt; part6 36さん <br> これはいいものを見せてもらいました。 <br> デザインパターンにそった非常にまとまりのいいコードのようなので、 <br> 読みやすいです。コメントが日本語なのも心強いです(笑 <br>  <br> 言語自体も、型を取り去って、簡略化したJavaみたいなものなので、 <br> 分かりやすく、気楽な感じでイイと思います。 <br> Wabaだとクラスファイルへのコンパイラを用意しないといけないのですが、 <br> これならその必要もないですし、このへんからやってみるのもいいかなと思っています。 <>
デフォルトの名無しさん<>sage<>03/05/11 21:15<> 　　　　　　　　まもなくここは　乂1000取り合戦場乂　となります。 <br>  <br> 　 　 　 ＼∧＿ﾍ　　　　　／￣￣￣￣￣￣￣￣￣￣￣￣ <br> 　,,､,､,,,　/ ＼〇ノゝ∩ ＜　1000取り合戦、いくぞｺﾞﾙｧ！！　　　　　　　,,､,､,,, <br> 　　　　/三√ ﾟДﾟ)　/　　 ＼＿＿＿＿＿＿＿＿＿＿＿＿　　,,､,､,,, <br> 　　 　　/三/| ﾟＵﾟ|＼　　　　　　,,､,､,,,　　　　　　　　　　　　　　　　　　　　　　　,,､,､,,, <br> 　,,､,､,,,　Ｕ （:::::::::::）　　,,､,､,,,　　　　　　　　　＼オーーーーーーーッ！！／ <br> 　　 　 　//三/|三|＼　　　　　∧＿∧∧＿∧ ∧＿∧∧＿∧∧＿∧∧＿∧ <br> 　　　　　　∪　 ∪　　　　　　 （　　　　）　　　 （　　　　 ）　　　（　　　　）　　　 ） <br> 　,,､,､,,,　　　　　　　,,､,､,,,　　∧＿∧∧＿∧∧＿∧ ∧＿∧∧＿∧∧＿∧∧＿∧ <br> 　　　　　　,,､,､,,,　　　　　　 （　　　　）　　　 （　　　　）　　　 （　　　　）　　　 （　　　　） <>
デフォルトの名無しさん<>sage<>03/05/11 21:15<> 956 <>
957<>sage<>03/05/11 21:30<> 957 <>
デフォルトの名無しさん<>sage<>03/05/11 21:48<> 958 <>
デフォルトの名無しさん<>sage<>03/05/11 22:05<> 959 <>
デフォルトの名無しさん<>sage<>03/05/11 22:09<> 960 <>
デフォルトの名無しさん<>sage<>03/05/11 22:12<> 961 <>
デフォルトの名無しさん<>sage<>03/05/11 22:18<> 962 <>
デフォルトの名無しさん<>sage<>03/05/11 22:34<> 963 <>
デフォルトの名無しさん<>sage<>03/05/11 22:50<> 964 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/05/11 22:58<> 965 <>
デフォルトの名無しさん<>sage<>03/05/11 23:04<> 966 <>
デフォルトの名無しさん<>sage<>03/05/11 23:42<> 967 <>
デフォルトの名無しさん<>sage<>03/05/12 00:07<> 968 <>
デフォルトの名無しさん<>sage<>03/05/12 00:31<> 969 <>
デフォルトの名無しさん<>sage<>03/05/12 01:38<> <a href="../test/read.cgi/tech/1042375466/965" target="_blank">&gt;&gt;965</a> <br> ひげぽんｶﾜｲｲｗ <>
デフォルトの名無しさん<>sage<>03/05/12 05:19<> 971 <>
972<>sage<>03/05/12 07:45<> 972 <>
973<>sage<>03/05/12 09:22<> 973 <>
デフォルトの名無しさん<>sage<>03/05/12 13:19<> 974 <>
デフォルトの名無しさん<>sage<>03/05/12 14:38<> 975 <>
デフォルトの名無しさん<>sage<>03/05/12 15:05<> 976 <>
デフォルトの名無しさん<>sage<>03/05/12 15:32<> 977 <>
デフォルトの名無しさん<>sage<>03/05/12 16:01<> 978 <>
979<>sage<>03/05/12 18:17<> 979 <>
デフォルトの名無しさん<>sage<>03/05/12 19:01<> 980 <>
デフォルトの名無しさん<>sage<>03/05/12 19:32<> 981 <>
デフォルトの名無しさん<>sage<>03/05/12 20:23<> 982 <>
デフォルトの名無しさん<>sage<>03/05/12 20:32<> 983 <>
デフォルトの名無しさん<>sage<>03/05/12 21:03<> 984 <>
デフォルトの名無しさん<>sage<>03/05/12 21:31<> 985 <>
デフォルトの名無しさん<>sage<>03/05/12 21:57<> 986 <>
デフォルトの名無しさん<>sage<>03/05/12 22:19<> 987 <br> 654321 <>
デフォルトの名無しさん<>sage<>03/05/12 22:20<> <a href="../test/read.cgi/tech/1042375466/987" target="_blank">&gt;&gt;987</a> <br> 最初何のことか分からなかったけど気付いて笑っちゃった <>
デフォルトの名無しさん<>sage<>03/05/12 22:21<> 989 <>
デフォルトの名無しさん<>sage<>03/05/12 22:48<> 990 <>
991<>sage<>03/05/12 23:11<> 991 <>
992<>sage<>03/05/12 23:40<> <a href="../test/read.cgi/tech/1042375466/1000" target="_blank">&gt;&gt;1000</a> <br> 1000ゲットにふさわしい書き込みを期待していますよ <>
デフォルトの名無しさん<>sage<>03/05/12 23:44<> 993 <>
デフォルトの名無しさん<>sage<>03/05/13 00:08<> 994 <>
デフォルトの名無しさん<>sage<>03/05/13 00:10<> 995 <>
デフォルトの名無しさん<>sage<>03/05/13 00:28<> 996 <>
デフォルトの名無しさん<>sage<>03/05/13 00:42<> 997 <>
デフォルトの名無しさん<>sage<>03/05/13 00:52<> 998 <>
ひげぽん </b>◆Ngzcp/NZpA <b><>sage<>03/05/13 00:56<> 999 <>
1000<><>03/05/13 00:59<> 　　　,ｒｎ <br> 　　r l l n <br> 　　|　､. !j <br> 　　ゝ　.f　　　　　　　　　＿ <br> 　　|　　|　　　　　　 ,r'⌒　 ⌒ヽ､ <br> 　 ,｣　　L_　　　　　f ,,r'￣￣ヾ.　ヽ. <br> 　ヾー‐'　|　　　　　ゞ‐=H:=‐fｰ)r､） <br> 　 |　　　じ､　　　　 ﾞiー'･･ー'　i.ﾄｿ 　　　ひげぽんマンセー <br> 　 ＼　　　 ＼. 　 　 l､ r==i　,;　|' <br> 　　　＼　　　ﾉﾘ^ー-＞==__,..-‐ﾍ＿＿＿ <br> 　　　　 ＼　 ノ ﾊヽ　 |_/oヽ__／　　　　 /＼ <br> 　　　　　　＼　 /　　　 /　　　　　　　　/　　|. <br> 　　　　　　　　y'　　　 /o　　　　 O　　,l　 　 | <>
１００１<><>Over 1000 Thread<>このスレッドは１０００を超えました。 <br> もう書けないので、新しいスレッドを立ててくださいです。。。 <>
