OSを作ろうpart6
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGスレッドになればと思います。
OSを作ろうpart5
http://pc2.2ch.net/test/read.cgi/tech/1042375466/
OSをつくろうpart4
http://pc3.2ch.net/test/read.cgi/tech/1037096449/
OSをつくろうpart3
http://pc3.2ch.net/tech/kako/1027/10270/1027080631.html
OSをつくろうpart2
http://pc3.2ch.net/tech/kako/1024/10244/1024411711.html
0002デフォルトの名無しさん
NGNG[Mona by ひげぽん氏他]
プロジェクトページ
ttp://mona.sourceforge.jp/
プロジェクトメンバーになりたい方は、
[email protected] までメールをどうぞ。
最新のイメージファイルは以下のURLから落とせます。
ttp://mona.sourceforge.jp/Download.html
ソースファイルの閲覧はここからできます。
ttp://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/mona_v1.0/
[あさがお by わたもち氏]
ホームページ
http://www.geocities.co.jp/SiliconValley-PaloAlto/6802/
作りかけの新ホームページ
http://watamoti.hp.infoseek.co.jp/os/index.htm
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGGUI-OSを作ってますがなにか?
http://pc2.2ch.net/test/read.cgi/tech/1045907529/
【第三勢力】和製OSここにあり!【超マイナー】
http://pc.2ch.net/test/read.cgi/os/1039237412/
OSを作ってみよう
http://pc.2ch.net/test/read.cgi/os/1046271176/
わーい!! 和製OSを作ったよ!!
http://pc.2ch.net/test/read.cgi/os/996051906/
OSを作るためにみんなでお勉強スレッド
http://pc.2ch.net/test/read.cgi/os/1020424840/
【2chOS】OSを作ろう【マジ】
http://pc.2ch.net/test/read.cgi/os/1018174274/
【ヤチャータ】OS作りました【デキチャータ】
http://pc.2ch.net/test/read.cgi/os/1019463348/
OSの作り方
http://pc.2ch.net/test/read.cgi/os/1007213585/
JAVAでOSを作る
http://pc.2ch.net/test/read.cgi/os/984210541/
仮に新しくOS作るとしたら、、、
http://pc.2ch.net/test/read.cgi/os/994675006/
0006デフォルトの名無しさん
NGNGosdev-j
http://wiki.osdev.info/
osdev-j(旧)
http://mjt.s22.xrea.com/pukiwiki/pukiwiki.php
厨房OS堕地獄縁起
http://www5.ocn.ne.jp/~carre/chubo/
XinuによるOS概論
http://a414s1.it.nanzan-u.ac.jp/seminar/OS/index.html
MPDN資料室
http://mona.sourceforge.jp/MPDN/document_room.html
LightCone氏によるOS開発資料
http://homepage2.nifty.com/nowsmart/Japanese/PCATData.htm
http://homepage2.nifty.com/nowsmart/Japanese/cpu.htm
0007デフォルトの名無しさん
NGNG個人的には、何気に大本命は、MONA-OSだと思ってる。
source-forgeを活用したり、doxygenでドキュメント整備したり、
STLでOS本体を記述したり、開発時間の短縮に工夫があるし。
とくにSTL採用は大きい。何気ないものでもキューしたりスタックしたりする
とき、速度面、保守面、安全面でも、STL採用のMONAは強力だと思われ。
379 名前: Be名無しさん 投稿日: 02/12/22 08:44
個人的には、来年の今ごろは、MONA >> NWSOS >>>>>>> OSASK だと思ってる。
で、MONA。今のところ、完全に発展途上であるものの、時間の合間に開発を
進めている?!わりには進行がとても速く、また、カーネルの記述にC++を積極的に
採用するなど、後々、大規模になったときの効率低下に心配がなさそう。
本人の知識吸収意欲も旺盛で、吸収したものをそのまま血肉としてMONAを拡張していけそうな予感。
382 名前: Be名無しさん 投稿日: 02/12/22 08:52
ま、現時点だったら、NWSOS > OSASK > Mona であることに異論はないのだが。
ただ、379が言ってるように将来込みで考えると、
MONAがNWSOSを追い抜き去るのは時間の問題なような気がする。
プリンタだとかモデムなどのドライバも、ソース公開されてるMONAが有利だと
思われ。
387 名前: Be名無しさん 投稿日: 02/12/22 09:06
漏れもMONAがNWSOSを抜き去るに一票。
超先生が指摘してるように、ソース公開されてるからこそ
問題点を掲示板上だけでもアドバイスできたりするし、
この手の垂れ込みが、カーネルの開発速度を加速すると思われる。
0008デフォルトの名無しさん
NGNG☆OSとしての成熟度
NWSOS > OSASK > MEG > MONA
☆OS開発または、同様分野(エミュレータ等)に注いだ時間
作者経験年数
OSASK > NWSOS >> MEG >> MONA
☆作者の人格
MEG == MONA >> OSASK == NWSOS
☆新技術への挑戦
NWSOS == MONA >> MEG >> OSASK
☆コミュニティの広さ
OSASK > MONA >> MEG > NWSOS
☆作者がOS開発にかけられる時間
OSASK == NWSOS >> MEG == MONA
181 名前: Be名無しさん 投稿日: 03/01/19 23:55
「新技術への挑戦」は明らかに違わないか・・?
182 名前: Be名無しさん 投稿日: 03/01/20 00:03
「作者経験年数」は、MEGの位置が違うと思う。
MEGのページの年表を見る限り:
OSASK > MEG > NWSOS >> MONA
184 名前: Be名無しさん 投稿日: 03/01/20 00:11
つーか、「作者の人格」は煽りだろ?
乗るなよ。何の役にも立たんから。
0009デフォルトの名無しさん
NGNG半年が経過しましたがMonaはNWSOSはおろか
OSASKの足元すら見えていないようです。。。
0010デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
.∩∧,,∧ (´´
,,,,,,,,,,ミ゚Д゚,,彡 (´⌒(´
ど,,,, ,,,,,二⊃≡≡(´⌒;;;≡≡≡
~''(,,,,,づ゙゙ (´⌒(´⌒;;
ズザーーーーーッ!!
0011デフォルトの名無しさん
NGNGいいんじゃない。
ひげぽんにはひげぽんのペースがあるんだし。
他人がごちゃごちゃ言うことじゃないと思うよ。
0012デフォルトの名無しさん
NGNG1人でやってんならそうだけど、
オープンソースの強みがまるでないじゃん。
0014デベロッパー名無し
NGNG0015デフォルトの名無しさん
NGNGオプソにしたから開発が一気に加速したなんてのは
犬糞に限った、しかも都市伝説みたいなもんだろ?
だから>>14やL氏はオプソ忌み嫌ってんだよ。
0016ウホッ!いい名無し
NGNG0017デフォルトの名無しさん
NGNG結局Monaがオープンにしたことで自分自身は得しないで
あさがおとかにパクられただけだしね
Lたんは正しかった!
0018デフォルトの名無しさん
NGNG>よく知らない人にソースコードを開示するような事はあり得ません。
0019名無したん@(´・ω・`)
NGNG0020デフォルトの名無しさん
NGNGウホッ!見せて!!
0021名無したん
NGNG0022デフォルトの名無しさん
NGNG焼けるもんなら焼いてみな!
0023ひげぽん ◆Ngzcp/NZpA
NGNG>>2
>>5
>>6
>>7
>>8
新スレ立ておつかれさまです。
> 半年が経過しましたがMonaはNWSOSはおろか
> OSASKの足元すら見えていないようです。。。
確かにおっしゃるとおりですね。
まあぼちぼちがんばります。
0024ひげぽん ◆Ngzcp/NZpA
NGNG・Makefileの書き方が悪いよと教えてもらった。⇒ビルド効率大幅アップ
・こういうソースを書いたんですけど動きませんと質問できた。(特に初期)
・STL導入パッチを作ってくれる人がいた。
・ブートコードやその他いろいろなコードを提供してくれる人に出会えた⇒ぐりぽん氏
・プロジェクトホームページを作ってくれる人に出会えた⇒YOSSY氏
・オープンするということで多少コードの品質に気をつけた〈本当か?)
・souceforge.jpを使用できている。
・進捗状況がプロジェクト外の人にも分かる。
思ったよりもオープンソースの効果がなかった点
・共同開発者になかなか出会えない。
プロジェクトに参加してくださる方々はたくさんいるのですが
私のプロジェクト運営のまずさや、OS作成の敷居の高さ?により
実質コードを書いているのはひげぽんとぐりぽん氏になってしまっている。
0025ひげぽん ◆Ngzcp/NZpA
NGNGどういうアプローチを取られるのか大変楽しみです。
Monaもがんばらないとなあ。
0026デフォルトの名無しさん
NGNG0027わたもち
NGNGのんびり作っていて新しいハードウェア(64bitCPUなど)が主流になっても、
楽に対応できるよう、できるだけハードウェアよりな構造にならないように
作ろうというのが書き換えのねらいです。
普及していて、ネイティブコンパイルできるオブジェクト指向言語ということで
C++にしました。
CをC++に変換するといった方向なのと、もともとオブジェクトを意識した構造に
なっているため、おそらくソースコードの見た目はあまり変わらないと思います。
後々、恩恵にあずかれるはず。
0028デフォルトの名無しさん
NGNGそれをパクるというのです。
オープンソースの弊害簡単にぱくられるとつらいねぇ。
0029わたもち
NGNG何か問題があるようでしたら、はっきりとお申しください。
私自身はなんら違反している行為はやっていないと思いますので...
0030デフォルトの名無しさん
NGNGひげぽん (および協力者) からクレームついてるわけじゃないでしょ ?
>>17 見りゃわかるけど、なんでも損得に置き換えたい人みたいだから、放置しておいた方が良いよ。
0031ひげぽん ◆Ngzcp/NZpA
NGNGそのとき気づいたのですが、mallocを実装しているのに
freeを実装していませんでした。w
急ぎで実装しましたが、今まで気づかなかった・・・
>>27
見張っていませんよ。たぶんw
0032わたもち
NGNGひげぽんさんがライセンスを本意で決めたのではなければ、
お気にさわっていらっしゃるかもしれません。
対処しますので、他の手段でこっそりおっしゃってください。
また、ページングの実装等どうぞお役立てください。
>> 見張っていませんよ。たぶんw
少し冗談入ってましたw
0034わたもち
NGNGひげぽんさんも毎日忙しいと思います。
また得意な技術も似たところがありますし、似たような環境の者同士、
お互い頑張りましょう。でも正直、先駆者であられるひげぽんさんには
頭があがりません。
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNGいきなりWabaはきついですから
こんな所から手を付けるのはどうでしょう?
ttp://what-new.hp.infoseek.co.jp/language/
0037デフォルトの名無しさん
NGNGCOM32(※)みたいな単純なのでいいからプロセスを実装
↓
簡単なコマンドラインシェルが登場
↓
dir(ls)とかcat(type)とか簡単なコマンドが登場
↓
フレームバッファを使ったGUIアプリが登場
↓
プロセス間通信を実装
↓
ウィンドウシステムの実装に着手
↓
ツールキットの実装に着手
↓
DLLを実装
↓
本格的なGUIアプリが登場(Mona独自レイヤ)
↓
BSDサブシステムでPOSIXをカバー
↓
X Window System移植(BSDレイヤ)
↓
ルートレスのX on Mona GUIで混在環境
↓
最強の和製OS誕生!!
※ COM32 by sakky
ttp://meg-os.org/project/com32.xml
0038デフォルトの名無しさん
NGNG前スレ使い切ろうや。
0039わたもち
NGNG前スレにレスしました。
0040始める時は名無したんを押す
NGNGこんなところでその名前を聞けると思ってなかったわけだが。
MonaでCOM32採用はセグメントがらみがあるので難しいと思う。
0041謎の探偵
NGNG( ´¬)y-~ マッタリ頑張れ。
いつも拝見させてもらってます。
0042デフォルトの名無しさん
NGNG950過ぎたら通常捨てるだろ
今はちょうど話題も切れてるし
>>39見たいなことされたほうが読みにくくて迷惑だ
余計なこと言うなよ
0043デフォルトの名無しさん
NGNGホラでもいいから公式ロードマップみたいなの示さないと
誰も付いて来なくて言葉だけの突っ込みに終始してしまうよ。>>ひげぽんちゃん♥
この辺参照ね。
http://pc.2ch.net/test/read.cgi/os/996051906/112-153
0044ひげぽん ◆Ngzcp/NZpA
NGNGその多くはDiskDriverを継承したFDCDriverの出来が良くないことに
よるものと思われます。
よく考えればFDCDriverはきちんとしたテストをしてなかったような・・・
>>34 わたもちさん
> でも正直、先駆者であられるひげぽんさんには
> 頭があがりません。
そんなことはありませんです(´ヘ`;)
先駆者といえば、川合さん、LightConeさんなどですね。
確かにお二人には頭が上がりませんw
>>37
夢のロードマップですね。
> COM32(※)みたいな単純なのでいいからプロセスを実装
> ↓
> 簡単なコマンドラインシェルが登場
> ↓
>dir(ls)とかcat(type)とか簡単なコマンドが登場
この辺まではなんとなくイメージがわきます。
0045ひげぽん ◆Ngzcp/NZpA
NGNG> ホラでもいいから公式ロードマップみたいなの示さないと
ではホラを含めて今後の予定をw
ファイルシステム FAT12のサポート(ブート後のお話)
↓
ブートコードからカーネルイメージをFAT12のファイルとして読み込めるようにする。
↓
ユーザーモードの実装(プロセス?スレッド?)
↓※
簡易シェルの実装(ls, pwd, cd?)
↓
ファイルシステムよりファイルを読み込みプロセスとして実行できるようになる。
↓
ユーザーモード用APIの整備
↓
ラインエディタの登場(誰か作ってくれるとうれしい)
↓
ページングなどカーネルの基礎作りに戻る。
※この辺で余裕があれば、ファイルシステムをユーザーモードで動かして
マイクロカーネル化への第一歩とする。
0046デフォルトの名無しさん
NGNGいや、こういうのじゃなくて、アーキテクチャのコンセプトを示さないと
よその人は参加しにくいと思うんだが。
今だと
・C++でカーネルを実装
ぐらいしかないし。
これだとちょっと抽象的で何を目指しているのかわからないので、生暖
かく見守るしかできないと思うんだが。
>ファイルシステム FAT12のサポート(ブート後のお話)
>簡易シェルの実装(ls, pwd, cd?)
から察するにWindowsクローンなOSを目指しているの?
004746
NGNG>簡易シェルの実装(ls, pwd, cd?)
だからWindowsクローンじゃないか。スマソ。
でも、POSIXには準拠しないって言っていたよねぇ?
ますますわかんなくなってきた・・・。
0048デフォルトの名無しさん
NGNG> ・共同開発者になかなか出会えない。
自分から提案してバリバリするような人なんか滅多にいないから、
(たとえば会社でする事がなかったら暇つぶしするのが普通の人でしょ?)
リーダーが仕事を作って分配しないと
たとえ実力があっても持て余す結果になるよ。
だけど分配したところで↓みたいな結果にもなりがち。
http://pc.2ch.net/test/read.cgi/os/1050476647/79-85
(79からリンクされているMLのログは必読!)
ここで共産主義の計画経済が自由主義の競争経済に
敗れたことを考えると良いと思う。
タスクを重複しないように分配して各々に一任するんじゃなくて、
やりたい人に重複とか気にせずに分配して競争が発生しても
あまり気にしないというのはどうだろうか。
もっとも規模が小さいうちは競争は自主的に回避されるだろうけどね。
0049デフォルトの名無しさん
NGNGMSも社内で競争させてるしね。
K氏は無意識に自覚してるのか知らんけど、
横からの提案を本流に取り入れるのは拒否して
やりたかったら勝手にやってくれ、
もし良かったらパクるからってのが口癖だし。
もっとも成果上がってないけど(ゲラ
0050デフォルトの名無しさん
NGNG> するどいですねぇ。
> まああまり気にしないでください。(笑)
矛盾してませんか?↓
Development Status: 2 - Pre-Alpha
0051デフォルトの名無しさん
NGNG粘着ヤメレ
0052デフォルトの名無しさん
NGNGそっくりそのまま返す
0053デフォルトの名無しさん
NGNGそっくりそのまま返す
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG俺も参加する
0056デフォルトの名無しさん
NGNGどうせ参加するならMona Projectにしろよ
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGそんな宗教的な問題、どっちだっていいよ。
0059デフォルトの名無しさん
NGNGwhileだと評価のコストがかかるから一般的にforが薦められているんだよ。
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNGgotoはJavaで使えないですよね。
だからC系言語一般で薦められているんです。
0062デフォルトの名無しさん
NGNG一般的になんて聞いたことないし。
評価コストは完全に実装依存の問題だろ
最適化コンパイラが無い時代でもないんだし、
どうでもいい
0063デフォルトの名無しさん
NGNG聞いたことがあるかどうかは基準にならないとして、
コーディングスタイルを一般的なものに合わせるのは
開発者に対するアピールになりますよ。
だから大きなプロジェクトではインデントの仕方とかも
細かく決められているわけです。
だからXPなどでもコーディング規約がうるさく言われるわけです。
もっともそんなことを意識するのはどうでもいいので、
書くときは各人で好きなように書いておいて、
最後に自動整形ツールで統一するわけですが、
ツールで整形できない部分もあるわけです。
プロジェクトをマネジメントするということと、
個人が趣味で楽しく書いていくのとは違いますよ。
その辺をなあなあでやると結局一人でやってるってことになりかねません。
Monaは既に10人以上の大所帯ですし、
今後実用性が高まればもっと増えることが期待されますからね。
0064デフォルトの名無しさん
NGNG確かにこれは基準にならないが、
ソースも示さず「一般的」と断言する根拠はどこから出てくるんだ?
63 != 59なら忘れてくれ。
というか、
forに統一るのが是で、whileに統一するのが非であるとする根拠が
>>59ならば、フーンとしか言えないんだが。
0065デフォルトの名無しさん
NGNG真っ当なコンパイラならfor(;;)とwhile(true)のどちらも同じコード吐くだろうし。
個人的には無限ループだということがわかりやすいのでwhile(TRUE)
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNGCにだってboolはあるぞ。
まあ正しくは_BoolだしC99準拠でないと使えないわけだが。
0068デフォルトの名無しさん
NGNGML公開されてないだろ。
本音では信者以外はどうでもいいってこった。
0069ひげぽん ◆Ngzcp/NZpA
NGNG> いや、こういうのじゃなくて、アーキテクチャのコンセプトを示さないと
> よその人は参加しにくいと思うんだが。
うーんそうですね。コンセプトですか難しいですねぇ。
> だからWindowsクローンじゃないか。スマソ。
> でも、POSIXには準拠しないって言っていたよねぇ
Windowsクローンは目指しません。
POSIXに準拠するかどうかは現時点では分かりません。
ということなのでls, pwd, cdは、あくまでも
簡易的なコマンド名にすぎす、動作が他のOSにそっくりというわけではありません。
>>48
> だけど分配したところで↓みたいな結果にもなりがち。
> http://pc.2ch.net/test/read.cgi/os/1050476647/79-85
> (79からリンクされているMLのログは必読!)
うわ内容が重いですね。
でもそこに書かれていることは、一部Monaプロジェクトにも当てはまりますね。
0070ひげぽん ◆Ngzcp/NZpA
NGNG>> まああまり気にしないでください。(笑)
> 矛盾してませんか?↓
> Development Status: 2 - Pre-Alpha
あまり深く考えていませんでした。
すいません。今から全て訂正するはきついので
ヒゲポソはバカだったということで勘弁してください。m(__)m
>>57 - 68 while (true)問題について
私は自分の書くコードでは
無限ループは while (true)でなるべく統一するようにしています。
他のコーディング規約も、ある程度は他の開発者の方に私のスタイルに
合わせていただく方針です。
もちろん、他のスタイルのほうがメリットがあると感じれば
簡単に乗り換えますw
0071デフォルトの名無しさん
NGNG> >>57 - 68
こういうときは
>>57-68
ってつなげて書くと自動的にまとめてリンクが付くから良いよ。
0072デフォルトの名無しさん
NGNGstatusは、どこかのフォームから簡単に変更できた記憶が。
これ、物によってバラバラな場合、どのへんにしておくか迷うんだよねえ。
ところで、コーディングスタイルをまとめた文章ってあります?
ソース見ればある程度読み取れますが、俺スタイルに合わせろということであれば、
きちんとまとめておいたほうが、完全に統一できて後々苦労しないと思います。
あちこち首突っ込んでいる身としては、あまりきつくない方がうれしいんですけどね。
0073デフォルトの名無しさん
NGNG#ifdef USE_WHILE
#define loop while(true)
#else
#define loop for(;;)
#endif
loop{
}
とりあえずこう書いとけ
0074ひげぽん ◆Ngzcp/NZpA
NGNGアドバイスありがとうございます。
>>72
・基本的には既存ソースのコーディングスタイルに準じる。
・インデントは半角空白×4を基本とする。
・tabはMakeFile以外では原則的に使用不可とする
てな感じになっております。
>>73
冗談ですよね?
0075デフォルトの名無しさん
NGNG> ・tabはMakeFile以外では原則的に使用不可とする
Emacsで書かれたとおぼしきソースに
8文字スペースの代わりにTabが入ってるよ(Emacsデフォの挙動)
この辺は63の言うように自動整形ツール使った方が楽だよ
0077デフォルトの名無しさん
NGNGひげぽんにPMの仕事させてどうするのよ。
設計やコーディングに専念してもらいましょうや。
0078デフォルトの名無しさん
NGNG誰かがやらないと1人プロジェクトのままだよ。
77さんどうですか?
0079デフォルトの名無しさん
NGNGできない事をやっている姿をマターリと見守って一緒に一喜一憂した気分に
なりたいだけなのかも知れない。
一人プロジェクトでいいのかどうかはひげぽん氏が判断すれば良いか。
どっちにしてもガンガレ!
0080horai
NGNGUNIXのソースコードにつけた注釈が本になったケースがありますが、
その逆を見ている感じ?>>69 あたりでコンセプトに悩んで
いらっしゃいますが、端から見たこのOSの特徴って、それ自体が
十分勉強の素材になるってことだと思います。LinuxはMINIXがあまりに
教育目的すぎたので実用のほうへのフラストレーションがわーと
噴出し発展、ってな印象ですが、MonaはあえてMINIXの後追い、(=勉強・
教育的要素を色濃く残しておく)てのはどうでしょう (w
・・・という意見は結構前からあるのかな?
0081horai
NGNGあまりに抽象的だったので、具体的なアイデアを一つ。
例えばカーネルの上に(?)どかっとRubyみたいなスクリプト
処理が載ってて、ls, cat などはスクリプトで書かれている。
すぐ cat すれば、すぐソース見れて勉強になる&自分なりの
ls, cat を作ってもいい。。。 IOやオブジェクトの扱いなどは
スクリプト側が提供。そりゃコンパイラで作るより遅い
だろうけど、最近のPCの速さだったらあまり苦もなく動くかも。
# ただファイルサイズは大きくなるからFDのみとはいかないか (w||
0082デフォルトの名無しさん
NGNG0083horai
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1050936741/l50
こういうのもあるのな (w
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG> for (;;) を使うべきだ。
こっちには賛成。
理由は、コンパイラが while(1) に対して文句を言うことがあるから。
でも、
> なぜなら、foreverと読めるから。
には、反対。
ずっとループするというプログラムもごくまれにあるけど、普通は...
for(;;){
...
if(...) break;
...
if(...) return;
...
}
と途中脱出するから。
0086デフォルトの名無しさん
NGNGひげぽんが書いたものにあわせればいいんじゃない?
0087デフォルトの名無しさん
NGNGwhile(1)はJavaやC#でコンパイルが通らないってのもある。
なるべくC/C++/C#/Javaは同じスタイルで書いたほうが良い。
0088デフォルトの名無しさん
NGNGwhile( true ) {
;
}
でいいと考える。何故か?
読みやすいソースコードは誰のため? ヒト? or コンパイラ?
もちろん我々のために読みやすく理解しやすく記述する。
癖のある書き方だと後に誰もメンテしてくれなくなるよ。
0089デフォルトの名無しさん
NGNG俺はwhile(1)派。警告?出ることもあるね^^;
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG^^;^^;^^;^^;^^;^^;^^;
^^;^^;^^;^^;^^;^^;^^;
^^;^^;^^;^^;^^;^^;^^;
^^;^^;^^;^^;^^;^^;^^;
^^;^^;^^;^^;^^;^^;^^;
^^;^^;^^;^^;^^;^^;^^;
0094デフォルトの名無しさん
NGNGプッ
FreeBSDはメンテされていますが何か?
ttp://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=style&dir=jpman-5.0.0%2Fman§=0
>無限ループは while ではなく for で行ないます。
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNGがんがれ。
0099デフォルトの名無しさん
NGNGつまりx86以外アーキテクチャ(結局今は現実的選択だとマクしかない?)
に移植検討して欲しい
(クレクレ君氏ね、と言われそうw)
0100デフォルトの名無しさん
NGNG> つまりx86以外アーキテクチャ(結局今は現実的選択だとマクしかない?)
WorkStation とかならいくらでもあるけど。
Sun Blade 150 なら、20万以下からあるし。
> に移植検討して欲しい
> (クレクレ君氏ね、と言われそうw)
と言うかそれをやる余力はさすがにひげぽんさんにはないと思う。
移植しやすいように配慮しておくことはできるかもしれないけど。
個人的には、移植なんか考えずに 386 アーキテクチャべったりの実装と言うのもおもしろいかもしれないと思っている。
0101ひげぽん ◆Ngzcp/NZpA
NGNG>> に移植検討して欲しい
>> (クレクレ君氏ね、と言われそうw)
> と言うかそれをやる余力はさすがにひげぽんさんにはないと思う。
> 移植しやすいように配慮しておくことはできるかもしれないけど。
こんにちは。そうですねぇ。
x86で手一杯です。。。。
ただ、本気で移植してくれるという人がいたら
もしかしたら協力できるかもしれません。
0102ひげぽん ◆Ngzcp/NZpA
NGNG実機ではなく、VPCでの話です(実機ではそれ以前の問題が・・・)
byte command[] = {0xC5//FDC_COMMAND_WRITE
, (head & 1) << 2
, track
, head
, sector
, 0x02
, 0x12
, 0x1b
, 0x00
};
0103ひげぽん ◆Ngzcp/NZpA
NGNGmemset(tbuf, i, 512);
g_fdcdriver->write(i, tbuf);
}
のようにwriteを順に行うと
ADDRESS 0x4A00を境に0x0000に戻って書き込みが
行われてしまいます。
つまり、ループしてしまう。。。。
writeコマンドパラメータが悪いのか・・・
うーん。こまりました。
これが解決するとVPCでFAT12::writeが動くのになあ。
0105デフォルトの名無しさん
NGNG漏れは、プログラミングはド素人ですが、
ソースを読んでOSのつくりを理解しようとしてます。
プロジェクトメンバーの方々、頑張って下さい。
0106ひげぽん ◆Ngzcp/NZpA
NGNGこんばんは。ありがとうございます。
105さんのようにソースをチェックしてくれている人は
意外と多いかもしれませんね。
FDCDriver@実機で大苦戦中
症状1(某メーカー機)
writeはきちんとできるが、read(0, buf)すなわちlba=0のデータが正しく読み込まれない
lba=1以降は通常に読める。
※その後調べたところwrite(0, buf)もおかしい。データが壊れている。
ただし壊れたデータも通常にread出来ていない模様。
症状2(自作機)
write失敗
ST0=0x40 ST1=0x04 ST2=0x10
readも微妙。
0107ひげぽん ◆Ngzcp/NZpA
NGNGmemset(tbuf, i + 5, 512);
if (!g_fdcdriver->write(i, tbuf)) {
g_console->printf("write failed %d", i);
g_fdcdriver->motor(false);
while (true);
}
}
memset(tbuf, 0x99, 512);
if (!g_fdcdriver->read(0, tbuf)) {
g_console->printf("read failed %d", 50);
g_fdcdriver->motor(false);
while (true);
}
for (int i = 0; i < 512; i++) g_console->printf("[%d]", tbuf[i]);
0108ひげぽん ◆Ngzcp/NZpA
NGNGmemset(tbuf, 0x99, 512);
if (!g_fdcdriver->read(1, tbuf)) {
g_console->printf("read failed %d", 50);
g_fdcdriver->motor(false);
while (true);
}
for (int i = 0; i < 512; i++) g_console->printf("[%d]", tbuf[i]);
while (true);
0109ひげぽん ◆Ngzcp/NZpA
NGNGFDCDriverの品質を上げるのにはもう少し
時間がかかりそうです。
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNG今回の問題とは関係ないと思うけど、
DMAする時のアドレスが0x?0000またぐと正常に転送できなかったような記憶があります。
チェックしておいた方がいいかも。
0112ひげぽん ◆Ngzcp/NZpA
NGNGDMAは 64KB以上16MB以下ならOKと認識しているのですが
合っていますでしょうか。
今日もFDCDriver#writeが安定せず
FDCがどういうタイミングで割り込みを発生させるかが
全ては分かっていなさそう。
seek,write,recalibrate完了時というのは分かるのですが
result phaseでも割り込みが返ってきているようにも見受けられる。
writeが完了していないのにdma転送をstopしている様な気がする。
0113デフォルトの名無しさん
NGNG最初の書き込みレコードのデータが壊れる→モーターの回転が上がってないかもしれない→書き込む前に一度レコードを読み出して回転を上げておく
コード書いたこともない素人の意見だがナ(・∀・)
0114ひげぽん ◆Ngzcp/NZpA
NGNG> 書き込みが失敗する→リトライを数回する
上記コードを追加したところLBA=0のデータも正しく読み書き
できるようになりました。ありがとうございます。m(__)m
あと解決すべき問題は
(TRACK, HEAD, SECTOR)=(0,1,18) または (1, 0, 18)のデータが
ST0=0x44, ST1=0x80
End Of Trackを超えてセクタREAD/WRITEしようとしたエラー
でwriteできない点です。
writeコマンドへのEOTパラメータは0x12を渡しています。
LBA THSの変換は以下の通り
void FDCDriver::lbaToTHS(int lba, byte& track, byte& head, byte& sector) {
track = lba / (2 * 18);
head = (lba / 18) % 2;
sector = 1 + lba % 18;
return;
}
0115山崎渉
NGNG0116.mjt ◆.mjtH1cgf.
NGNG○ IRQハンドラを呼んでも落ちない(仮想関数使うのを諦め、直接ハンドラのアドレスを渡す
× マウスの初期化が腐ってる
× PCICの初期化が腐ってる
4点。
ISADeviceのドライバなら書けるので暇な人は書いてみて下さい
…と言いたいところだけれど、真っ当なサンプルが無いのでダメっぽ。
C++で書いたクラスを別ファイルにしておいて、実行時にリンクする手法募集。。
0117111
NGNG例えば、0x10ff00にセクタバッファが来た場合、
最初の256byteは予定通りの場所に入るけど、
続きが0x110000じゃなくて0x100000に入るよって事です。
>>116
普通にダイナミックリンクできない?
0118.mjt ◆.mjtH1cgf.
NGNG○ PIC設定の重大なミスを訂正
○ PCカードを刺したまま起動すると認識する。電源供給周り作ってないので認識は出来ず。
試験前なのでちょっと中断。
>>117
ダイナミックリンクにはOSのサポートが不可欠です。
ELFなり何なりで格納したとしても、リンカが必要になります…
とりあえず、gccのnew演算子が実際にはどのような処理を行っているのか調べて見る必要が有りそう。
0119デフォルトの名無しさん
NGNG断食して体調崩して水泳をサボる基地外と勘違いしてた
0120ひげぽん ◆Ngzcp/NZpA
NGNG頭を冷やして、他の実装行こうかなあ。
症状の詳細はread/writeが一部パラメータのみ失敗する。
0, 0, 18 読み書きOK
0, 1, 18 読み書きNG END OF TRACK越えエラー
1, 0, 18 読み書きOK
1, 1, 18 読み書きNG END OF TRACK越えエラー
T, H, S
0, 1, 18の場合RESULTは
0x44,0x80,0x00,0x00,0x01,0x12,0x02
1, 1, 18の場合は
0x44,0x80,0x00,0x01,0x01,0x12,0x02
他のOSのソースと見比べてみましたが
原因がつかめていません。
ちなみにソースは
ttp://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/*checkout*/mona/mona_v1.0/src/FDCDriver.cpp?rev=1.25&content-type=text/plain
FDCDriverを書いたことのある人がいらっしゃいましたら
アドバイスをいただけたら幸いです。
0121ひげぽん ◆Ngzcp/NZpA
NGNGDMA転送サイズを-1することで解決しました。
ご協力いただいたosdev-jの皆様ありがとうございました。
とくにS氏サンクスですm(__)m
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNGんなもんです。
mallocした後コンストラクタ走るけど。
どっちかっつーとvirtualの扱いの方が面倒。
0125ひげぽん ◆Ngzcp/NZpA
NGNG・information出力関数info()を追加。こいつのおかげでいろいろ助かります。
・FAT12.cpp ファイルサイズがwrite時に小さくなったときのクラスタ解放を実装。
・FAT12クラスの実機でのテストを開始、手元の実機では動作を確認。
テスト内容は
bool createFlie(const char* name, const char* ext);
bool open(const char* path, const char* filename, int mode);
bool close();
bool read(byte* buffer);
bool write(byte* buffer);
bool write(byte* buffer, int size);
bool changeDirectory(const char* path);
bool changeDirectoryRelative(const char* path);
を駆使して、とあるディレクトリの下に新規ファイルを作成する。
osdev-jでテスト願いを出しております。ご協力のほどお願いいたします。
0126デフォルトの名無しさん
NGNGいくつ継承していようがメモリ確保は一度だけ。
順にメモリ確保なんてしないよ。
メモリ管理とvtblのことよく理解してないみたいだけど、
いい加減なことはイワンでほしい
0127.mjt ◆.mjtH1cgf.
NGNGBe辺りは出来たような気がしなくも無く…
g_consoleを初期化する前に、BIOSを利用したコンソールを用意しておくべきかと > hige氏
一部のマシンで起動できない -> g_console初期化前に割り込みなどの要因でg_consoleへのアクセス発生
-> ぬるぽ -> CPU例外ハンドラ(以前はdummy_handler) -> やっぱりアクセスできない -> ダブルフォールト
-> やっぱりダメ -> リセット の予感 > hige氏
0129超先生@∇・RR=∞ ◆leaf/RYZgY
NGNG外部からobjectを取り込むのかな。
void* operator new(size_t n)
{
if(boot_phase)
return external_objects[...]; /* 別にnewにする必要ない<>-~ */
else
return malloc(n);
}
0130デフォルトの名無しさん
NGNG> いくつ継承していようがメモリ確保は一度だけ。
実装べたべたの話と言うことは理解してるよね。
複数回 malloc() が禁止されているわけじゃないよ。
0131デフォルトの名無しさん
NGNG0132ひげぽん ◆Ngzcp/NZpA
NGNG> g_consoleを初期化する前に、BIOSを利用したコンソールを用意しておくべきかと > hige氏
確かに必要性を感じますね。
> 一部のマシンで起動できない -> g_console初期化前に割り込みなどの要因でg_consoleへのアクセス発生
> -> ぬるぽ -> CPU例外ハンドラ(以前はdummy_handler) -> やっぱりアクセスできない -> ダブルフォールト
> -> やっぱりダメ -> リセット の予感 > hige氏
以前このようなことで悩んだことがあります。
割り込みをうまいことコントロールしたつもりがやはり
ある程度は避けられませんね。
>>129 超先生さん
顔が変わりましたね。
超先生のおっしゃる方法もありですね。
というか、勉強になります。
0133ひげぽん ◆Ngzcp/NZpA
NGNGglobal.hで
GraphicalConsole g_g_console;
VitualConsole* g_console = &g_g_console;
見たいなのはどうでしょうか?
初期化の順番にも寄りますが。
0134ひげぽん ◆Ngzcp/NZpA
NGNGttp://wiki.osdev.info/index.php?%5B%5BDiskImage%2FMona%5D%5D
ご協力をお願いいたします。m(__)m
あとはFAT12ブートを試す作業が残っています。
0135ひげぽん ◆Ngzcp/NZpA
NGNG.mjt氏
リアルモードでmode12へ移行しているので
GraphicalConsole以外の出力先をあきらめた経緯があります。
g_consoleの中身がstaticで実行開始時に保証されていれば
とりあえずOKでしょうか。
0136.mjt ◆.mjtH1cgf.
NGNGそれでOKでしょう。多分。。
# 画面分割や出力先の変更が出来ないうちは
ちょっち忙しいので四日程お待ちを。
リアルモードのBIOSを呼ぶインターフェースも必要になるかもしれないですね
まぁ、それは必要になったときにつけましょうか。
0137デフォルトの名無しさん
NGNGLタソが自慢してたね
0138デフォルトの名無しさん
NGNG召還しちゃダメ〜
0139.mjt ◆.mjtH1cgf.
NGNGリアルモードのBIOSコールに関しては、想定される用途(*)が結構限定的なので
一旦OSをとめてしまう構造にすれば、実装自体は難しくないかもしれません。
現状のMonaはカーネルは低位メモリに読み込まれていますが、充分な余裕が有ります。
やってみたわけではないので臆測ですが。
OSの中で矛盾無く取り込むにはBIOS-ROMを仮想86のメモリにちゃんと
マップしたり、DMA等のアドレスをきちんとしたりしなければいけないので比較的面倒かも。
# それこそ、エミュレータを書くくらいの気合で。
そこまでする必要性は余り感じていません。
* 想定される用途
画面モードの切り替え、PC本体情報やデバイスの情報の収集等。
0140デフォルトの名無しさん
NGNG起動前に済ませておくべき事項では?
0141デフォルトの名無しさん
NGNG同意。
ホットプラグ考慮しなければ、リアルモードなうちに収集してしまったほうが簡単ですな。
画面切替えは、VESAなら32bitインタフェースあるからVM86使って呼ぶ必要ないし。
どうしてもVM86を使うなら、先頭の1MだけLMA=VMAにすれば、
あんまり考えなくてもいいかも知れない。
0142山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0143デフォルトの名無しさん
NGNG|悲しいときー! | |レス来てると思って開いたら山崎だったときー!!|
 ̄ ̄ ̄∨ ̄ ̄ ̄  ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧∧ ∧_∧
( ゚Д゚) ( ´д` )
⊂○ ○ヽ ||””””””””””|
| | ̄ ( )山崎渉 ( )
/ /\\ ||_(^^)__|
/ / > / / / ) )
(_) ��> (_) (_)
0144.mjt ◆.mjtH1cgf.
NGNGデバイスマネージャ周りをカーネルにあまり入れたくないというだけです。。
その辺はひげぽん氏の方針もあるでしょうから、はっきりした見解が有るまで触らないでおきます…
で、>>133を実験してみましたが、正常起動していた機種でもお亡くなりに…
printfを呼ぶとよく分からないIPで停止。
もっと問題の根は深そうなのですが、正常起動しない機種が手元に2つしかないので暫く放置で。
また、落ちたときの状況を考えると、>>127で考えた原因は成り立ちません。
そもそも、カーネル初期化時は 当然の如く割り込み禁止状態ですからね…
# 何故気付かなかった…
0145デフォルトの名無しさん
NGNGレス2個ついてる思ったら、山崎とお前かよ !!
0146某S氏
NGNG0147ひげぽん ◆Ngzcp/NZpA
NGNG情報収集は開発当初にそこまで手が回らなかったので放置気味の状態です。
>>144
> その辺はひげぽん氏の方針もあるでしょうから、はっきりした見解が有るまで触らないでおきます…
特に思うところはないので今度相談しましょう。>mjt氏
>>146
ここにいますよw
どういうご用件でしょうか?
0148デフォルトの名無しさん
NGNGPCIにぶら下がったデバイスの構成情報なら、
32bitインタフェース使って収集できると思いますが。
あとはBIOSワークに残された情報を集めれば、
VM86を持ち出さなくてもよさそうな気がする。
0149.mjt ◆.mjtH1cgf.
NGNG情報どうもです。
とりあえず、資料を集めて眺めてみる必要が有りそうですね。。
そうなってくると、いよいよカーネルの構成を考えなければならない段かもしれませぬ。
0150デフォルトの名無しさん
NGNG秘密のラブレターがあるの。
0151デフォルトの名無しさん
NGNGintで割り込みかけて情報ひきだすんじゃないの?
BIOSとかから情報えられないから違うんだろうけど
0152ひげぽん ◆Ngzcp/NZpA
NGNGFAT12ブート対応
* firstboot.asm : FAT12ブート対応 ぐりぽん氏提供のコードにBPBなどを追加。
デバッグルーチンを削除
* fat_write.cpp : 新規作成 FAT12.cppを駆使して配布用ディスクイメージを作成する。
* Makefile : FAT12イメージを作成するためいろいろと変更
* secondboot.asm : a20enableとgraphicalmodeをfirstboot.asmからsecondboot.asmに移動。
0153ひげぽん ◆Ngzcp/NZpA
NGNG現在下記場所にてテスト用のイメージを配布しています。
少しでも多くの実機でテスト行いたいのでご協力をお願いいたします。
ttp://wiki.osdev.info/index.php?%5B%5BDiskImage%2FMona%5D%5D
0154デフォルトの名無しさん
NGNG試したいけど、怖くて試せない…(汗
0155ひげぽん ◆Ngzcp/NZpA
NGNG残念ながら100%安全とはいえません。
ですがそんなに危険なものでもないと思います。
テストは、フロッピードライブアクセスを行います。
なのでフロッピーディスクやフロッピードライブが壊れる可能性があります。
(今までは壊れたことはありませんが。。。)
HDDアクセスは一切行いませんのでHDDのデータが壊れることはまずないでしょう。
ただどんな結果・損害が出てもひげぽんはフォローは出来るかもしれませんが
一切責任は取れませんので、自己責任でご協力いただくしかないと思っています。
すいません、説明不足かもしれませんがよろしくお願いいたします。
0156154
NGNGHDのデータだったらヤヴァイなぁ…。
これから試してみます。
0157デフォルトの名無しさん
NGNGVMwareで動かないよ〜
No bootable CD, floppy or hard disk was detected.
To install an operating system, insert a bootable CD or floppy and restart the virtual machine by clicking the Reset button.
って出る。
0158デフォルトの名無しさん
NGNG0159.mjt ◆.mjtH1cgf.
NGNGVMwareのバージョンは幾らですか?
また、VMwareで他のOSの起動ディスクが起動できるかも確認してみてください。
2.0の英語版で確認した限りは起動はしますが、FDのテストがうまくいってません。
ttp://wiki.osdev.info/index.php?%5B%5BScreenShot%2FMona%5D%5D
0160デフォルトの名無しさん
NGNGVMware4.0Wです…
0161デフォルトの名無しさん
NGNGnnnnnnnn
でよい?
0162ひげぽん ◆Ngzcp/NZpA
NGNGMonaのそれぞれの文字が512個表示されていれば
テストOKです。
>>157
VMware出来どうしないとのことですが
試していただいた手順を教えていただいてもよろしいでしょうか。
osdev.infoで動作報告していただいたかたの中で
DUMP版では動くが正規版では動かないというご報告がありました。
推測するにFDCDriverのどこかの処理でFDCの割り込み(処理終了のおしらせ)
を待つべきところを、まっていないのが原因かもしれません。
DUMP版は大量に文字表示をするので、結果的に処理終了後に次の処理に行くのでは。。。
とおもって処理を見返してみましたが今のところそれらしいところは見つかっていません。
0163157
NGNGhttp://nks-42.mydns.to/option.jpg
0164デフォルトの名無しさん
NGNGFAT12が扱えれば、テスト環境でのログ取り&報告に使えそうですね。
0165.mjt ◆.mjtH1cgf.
NGNG設定は大丈夫だと思うので、ディスクイメージのディスクへの書き込みが上手く行ってないのかもしれません。
2.0だと[FAT 12]:before read resultの直前または同時にVMwareがpanic。
0167ひげぽん ◆Ngzcp/NZpA
NGNG苦戦中。
0168デフォルトの名無しさん
NGNG素人的発想ですが、動かない場合のチップセットを聞いてみてはどうでしょう?
0169.mjt ◆.mjtH1cgf.
NGNG・i815 ?
・440 BX/LX/ZX
起動しないCPU
・i386?
メモリ周りの処理がマズいのかもしれません。
と、言うのも、手元のPS55Noteや近くの440ZX機ではnewで作成したポインタ(の、メンバ)にアクセスした瞬間に再起動しているようです。
...ふと思ったのですが、CPU例外はNMIですよね。。。多分。
それなら、>>127もありえない話ではないのか...
とにかく、グラフィックコンソールを初期化する前に何らかの出力を得られるようにしたいところです。
# 最悪、シリアルポート経由ででも。。。
0170デフォルトの名無しさん
NGNG本当はキューの空きチェックしないといけないんだけどね(笑
0171.mjt ◆.mjtH1cgf.
NGNGUARTは16bytesでしたっけ。>FIFO
落ちたときのダンプ吐くだけなら16bytesに収める(IP , フォールト番号ぐらいで必要充分)手も(w
メモリのAllocateはやっぱり正常終了している模様...
0172デフォルトの名無しさん
NGNG0173.mjt ◆.mjtH1cgf.
NGNGこの辺でA20の制御はしてるようです。
方法が微妙な気がするので検証する価値は有るかもしれません。
メモリのキャッシュ周りはプロテクトモードの時はA20のことは気にしなくて良かったような。
(逆に、リアルモードでHMAを扱いたい場合が微妙。
0174デフォルトの名無しさん
NGNGいやA20はアドレス線の問題だからプロテクトモードでも影響するのでは
PS/2だとport0x92みたいだし…
0175超先生@∂/∂RR=∞ ◆leaf/RYZgY
NGNG<後ろ頭>-~ 激しくポインタがNULLの予感。
bssとかはclearしてあるんだろうか。
0176.mjt ◆.mjtH1cgf.
NGNGF I X さ れ ま す た
A20Enableが不味かった模様。
0177.mjt ◆.mjtH1cgf.
NGNG「キャッシュ周りは」です。
CPUキャッシュはA20のマスクとはお構いなしに動作するので、その辺の考慮が必要になります。
A20のマスクはCPU外部でやってることです。
で、今度はIRQハンドラ周りがバグってます...
既知のバグ:
・FATブートが一部マシンで物凄く遅い(相性?
+コンパイルオプションで切り替えたりとか出来るようにした方がいいかな...
・IRQハンドラが腐ってる(ひげぽん氏のコードでは未使用
0178.mjt ◆.mjtH1cgf.
NGNG幾つかデバッグルーチンを追加してみましたが、その辺は大丈夫な模様。
# というか、その辺の検証はFATブート以前にもやってたんです。。
とりあえず、インテルなチップセットな方はもう一度検証していただくことになりそうです。
テスト用のディスクイメージはひげぽん氏がそのうち上げると思います。。
さらにバグ発見:
・.mjtのテストコードのうち、CMOS読み出しによる拡張メモリ搭載量測定が不正確
+実際のメモリ量 - 1 MBになるのは正常です。
ttp://okotama.org/osdev-temp/mona-boottest-030604l1.zip
取り急ぎ起動テスト版。起動するかどうかだけのテストです。
0179.mjt ◆.mjtH1cgf.
NGNGttp://okotama.org/osdev-temp/mona-boottest030604l1.zip
です。
いままで起動していた方もテストしてみてください...
HDDへのアクセスはしない「はず」です。
0180デフォルトの名無しさん
NGNGデバッグ出力に使うなら、きちんと作ったほうがいいよ。
そんなに難しくないし。
絶対メモリダンプが欲しくなる。
0181180
NGNG全然確認していないので、使う前に確認して。
begin 644 serial.c.gz
M'XL("*KWW3X``W-E<FEA;"YC`)54VVZ;0!!]-E\Q4J0*["I>\*54KB/A0M1(
MO@G3OD;8NXY7PJ:"M>,V]K]W=B%<8J5)>()SSIXY,[/BBK(UWS$8.0OO?N3\
M=$$'T^YV+$*@#68?#$V[RC7^R`=="1W7]5O$*)C@QVO,G5=CS`IS5V.LDAE_
MKS&=DIG4F6[ES*+&]"IGZDR_9!9UMR^55MWQ^)6&W/'D14,EY01.#\B1D!K4
MEY!YJ;(N59TR6S";FW4O"5D2ZA;0?#J;>G75W/OE31$R[1*:N2Y(E:UI[2:L
M]JF(M_PO@PU+A5#NWW<"#[[V*XY%LVC169>VMS-_X@2@R_3V204^J4"&
M*L-W7/`PDG5LJT=DG4/,J<+O4Y8@ITO`T)XTP.<01Z'@$4.!@,>0BX&"Y1>-
M!IKZH!$,*U>U723.M%@U90)$<H1UG&Q#@0JV"Y=H2OF!4P988K614:0\WHO?
M<2*6.EZX:W*T"9SRIHS,#TUTF61(!BK1-S-_:;6,/%%><AGN:1(*=F&-%^E:
MQ]B?<'CKM?$NXQ<&DXH!(<;-C?WA>+6)4)Z^;R0?F,59K5R>W@O8LC0-'UBQ
M\0Q^WOEJ$R;0W*8/SXN7&X[29/"_6_"X04Q7I^!):V`MR8$X0L)"^D>6:M!8
M4E*-;GA/^"YO9>%CPL;;333.61W0=>D@)VX1`X9#())5L]Q1R!K`@L6P\/?W
8665#U1LE4-5J93V=<6K_`'"WX79_!0``
`
end
0182.mjt ◆.mjtH1cgf.
NGNG展開できないです。。
もしよろしければ、
ttp://wiki.osdev.info/index.php?%5B%5BMona%5D%5D
のページの「添付」リンクからアップロードしていただけないでしょうか?
お手数をかけて申し訳ないです。。
0183ひげぽん ◆Ngzcp/NZpA
NGNG平日にこんなにスレが進んでいてびっくりです。
> A20Enableが不味かった模様。
今度詳細を教えてくださいm(__)m
0185超先生@∂/∂RR=∞ ◆leaf/RYZgY
NGNG<後ろ頭>-~ 実際に有効になるまでタイムラグがある現象?
0186デフォルトの名無しさん
NGNG0187.mjt ◆.mjtH1cgf.
NGNGそう言う感じです。多分。
というか、正常に動作した機種はA20のマスクを実わしてないとか?
暇な人は実験してみよう!(逃
>>184
どうもです。実際に使うのはもうちょっと先ですが、デバグ用途以外に、もしかしたらSLIP実装しちゃうかもしれません。
# Winで使えるSLIPゲートが有るなら話は早いんですけど
早いところドライバインターフェース作って、スレのみんなでドライバ作ればドライバそろってウハウハかも。
0188jack-11
NGNG他の実験中に確認できました。
(MemoryManegarのどこが原因か、まだわかっていないですが)
GraphicalConsoleをやめて(new演算子をパイパス)VGAモードで動作が確認できました。(ThinkPad570)
0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNG0191.mjt ◆.mjtH1cgf.
NGNG現在公開されているディスクイメージが正常起動するか確認していただけますか?
ttp://okotama.org/osdev-temp/mona-boottest030604l1.zip
現在のMonaはnewによりメモリを確保しない限り低位メモリ(1MB以下のメモリ)しかアクセスしないので
A20ラインの制御の問題は発現しません。
# 正確には、スタックにより1MB以上のメモリがアクセスされる可能性は有るはずですが。
0192jack-11
NGNG0194ひげぽん ◆Ngzcp/NZpA
NGNG少しずつ上がってきました。
ちょっと落ち着いたのでMonaのメモリマップを整理しました
いろいろと問題をご指摘しいただき整理して
以下のような感じになりました。
ttp://wiki.osdev.info/index.php?plugin=attach&openfile=mona_mmap.png&refer=%5B%5BMona%5D%5D
0195デフォルトの名無しさん
NGNG普通はピリオド付けるよ<ver.
0196デフォルトの名無しさん
NGNGおりば曰く:
> ◆ ソースを見せるなんて、裸を見せるくらい恥ずかしいかもしれない
こればからは著作権者の気持の問題だから、あまりいえない。
ただ、人がソースを見たくなるような機能をもつコードを書いたのなら、
それは十分に胸が張れることだと自分は思う。
それは自分が無から己の知と指を使って創造したものだ。
それだけで素晴らしいではないか。
そして、人に見せる事を前提に書いたコードはちゃんとする傾向があるので、
あとで自分でメンテするのも楽。
自分専用に書いた自分のコードほど読みにくいものはない。(経験談)
0197デフォルトの名無しさん
NGNG電波爆発させても誰も相手にしない罠
なぜか!?
敢えて言おう、カスであると!
0198デフォルトの名無しさん
NGNGttp://slashdot.jp/comments.pl?sid=99036&cid=331122
0199デフォルトの名無しさん
NGNG宗教論争はあっちでやってもらえばいいかと。
>>194
もう少し、細かく書いたほうが資料として役に立つと思います。
他人にも自分にも。
0200ひげぽん ◆Ngzcp/NZpA
NGNG確かにおっしゃるとおりです。m(__)m
どうも細かいところに気がいかないw
>>199
> もう少し、細かく書いたほうが資料として役に立つと思います。
> 他人にも自分にも。
なるほどどの程度細かく書いたらよいのでしょうか。
一応今回メモリマップを書き直したのは、PAGING導入を見越して
再確認がしたかったからです。
0201ひげぽん ◆Ngzcp/NZpA
NGNG今まで特に意識することなく、動いているので放っておかれていたポイント
・GDTでのセグメント設定
・IDTの設定とメモリ上の位置
をそれぞれ改善。(というか、きちんと書き直すことでより理解を深める。)
以下は、メモリマップの更新版です。
ttp://wiki.osdev.info/index.php?plugin=attach&openfile=mona_mmap1.5.png&refer=%5B%5BMona%5D%5D
0202デフォルトの名無しさん
NGNGあくまで、個人的な意見ですが、
たとえばGDT、IDTとかは、カーネル起動後には確保されてるわけだし、
BUFFだけは別に書いたほうがいいかも。
Memory for Kernelはあんまりかなぁと思いました。
あと、仮想メモリを使うつもりなら、仮想空間と実空間を書いたほうがいいかも。
空間内用が同じでも、同じものを二つ並べるだけで違ってくると思います。
同じって言葉で書くだけでもいいけど。
0203デフォルトの名無しさん
NGNGL氏は貴様以上の電波だったが貴様よりマメだったぞ
0204デフォルトの名無しさん
NGNGお前さ、OSASKスレの方でもいろんな人を叩いてるよな
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGおまえのスマイルなど0円さ....
0208デフォルトの名無しさん
NGNGかわいいねーちゃんのスマイルでも0円だからなw
0209デフォルトの名無しさん
NGNG個人情報の売買ビジネスすか? Y!BBが始めたみたいだからブローカーになるとかw
0210デフォルトの名無しさん
NGNGで、主要アプリがこっちに移植されたら下のOS(windows)を
さんざん姦った後の女のように捨てる。
javaは理想は高いが、できあがるアプリがへぼいし、
.netはどうせwinから出ないし、
tronは相手にされてない。
とりあえずapiはjava、.netあたりのパクりで。
0211デフォルトの名無しさん
NGNGおかげで、PS2発売後のDVDプレイヤーのように、
業界はみな値段を下げざるを得なくなったからな。
0212デフォルトの名無しさん
NGNG激しく同意、つーか、実はトレンド(w
ristiaっつってmegがそれやろうとしたんだよな
Lに潰されたけどnwsosでやろうとした香具師もいた
わたもちもJavaエミュとか作って似た方向を考えてる
ところでgcjって使ったことある?>ひげぽん&わたもち
カーネル開発に使うにはlibgcj依存が問題になりそうだが
STLの時みたいなハックで解決できると思う
そしたらJavaでカーネル書けるようになる
どーせひげぽんもわたもちもJava厨なんだから、
C/C++なんかよりいいでしょ(ゲラ
0213デフォルトの名無しさん
NGNGこれはつまり、カーネルが乱立していても、
GUIは協業できることを示している。
ディストリビューションとかそういう問題じゃないんだよ>わたもち
0214デフォルトの名無しさん
NGNGスマイルなんざどーでもいい
中田氏の価格破壊キボンヌ
0215デフォルトの名無しさん
NGNG西川口逝け
0216デフォルトの名無しさん
NGNGゴムだろ
0217ひげぽん ◆Ngzcp/NZpA
NGNG貴重なご意見ありがとうございます。
仮想メモリを実装した際にメモリマップを更新いたします。
>>212
gcjですか、情報ありがとうございます。
higeposを開発始めた当初は、今よりもっと周りが見えていなかったので
javaでOS開発できるならしたいと思っていましたが。
今では考えを改めました、OSのカーネル部分はjavaで開発するメリットよりも
javaで開発するための環境づくりやつじつまあわせにかかるコストのデメリットのほうが
大きいと考えています。
なので私は、実行環境としてのjavaのようなものをOSに載せるほうに
今は興味があります。
全然関係ないですが、↓こんなすごい人がいます。
ttp://wiki.osdev.info/index.php?AnotherMona
0218デフォルトの名無しさん
NGNGgcjのイメージはそんな別世界のものじゃないよ
Cygwinでgcc 3.2使ってるなら
gcjも入ってるからすぐ試せる
適当なHelloWorldとかを
gcj Hello.java --main=Hello
とかすればコンパイルできる
gcj -c Hello.java
ってやるとHello.oが出来て
これはC/C++で作った.oと混ぜてリンクできる
つまりgcc内での扱いはC/C++と同じ
g++でiostreamとか使うとlibstdc++が必要なように
(その結果、Monaではiostreamは使えない)
gcjではlibgcjが必要
g++ならiostreamを使わなければlibstdc++は必要ないけど
問題は、gcjはlibgcjを切り離せないってこと
STLを移植したみたいにしてlibgcjを移植する必要がある
0219デフォルトの名無しさん
NGNGCygwinでの/usr/include/java以下を見てみるといいよ
きっと萌えるから(w
これはCNIっていうJNIの独自版みたいなやつで
JavaをC++に自動でマップしてるヘッダ
詳しいことは↓でも見てちょ
ttp://page.freett.com/gikob/gcj/cni.html
0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNGMonoプロジェクトって.netクローンじゃなかった?
かなりまえに、Javaで書かれたOSがあったと思う。
Sunがやってたような・・・でも、当時の技術だと、遅すぎて使い物にならなかったらしい。
Monaなら、(コンパクトなカーネル+Java(?)VM)+Java(?)で書いたサブシステム
とかのほうがいいのかも。
0222デフォルトの名無しさん
NGNG新OSには、何が必要で、何が必要でないか意見ください。
今考えてること
・バイナリのクラスをリンクできる
・プロセス間通信が簡単
・OS非依存にするための最低の機能だけ提供
・仮想OSのバイナリは、そのOSのものでいい(ソースで互換をとる)
・「C:」とかのドライブのほかにUNIXっぽいファイルシステムもつかえる
・・・ほとんどActiveX?
>>212
すでにいろいろあるんだなあ。
ristiaってのはmegともに消えた?
0223ひげぽん ◆Ngzcp/NZpA
NGNGページングのテストをしていました。
Monaでは0〜4MBのメモリしか使用していないので
0〜4MBで、論理ページ=物理ページ
と、ページテーブルを設定しました。
そして4MB以上はページテーブルを割り当てていない状態を作って
ページフォルトハンドラの実験等を行いました。
0224デフォルトの名無しさん
NGNGVMとか大げさなことしなくても、たとえばただのライブラリのQtもそれを狙ってんだよ。
0225デフォルトの名無しさん
NGNGすげーなgcj!!
びっくりした!!
Java厨になりそうだよ(w
0226デフォルトの名無しさん
NGNGCOMみたいな規格を考えてたんだけど、
たしかに単にライブラリでもいいかな。
でもwindowsではマルチプラットフォームのメジャーなライブラリってなさそうだし。
特殊なハードやOSを必要としないアプリ(ブラウザやメールとか)は、
OSに依存しないようになれば、ネタOSも使えるようになるのにな。w
0227還す者 ◆AEqcy/sQU6
NGNG∈ ゚ )
| |
(゚Д゚ )''""~"''彡,,
⊂;;⊂'';;;,,,.,.,.,.,.,;;つ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
プカプカ
,.._
∈ ゚ )
| | . .
保守> (゚Д゚ )''""~"''彡,,゜。.゚ :
U;;U'';;;,,,.,.,.,.,.,;;つ )) ) ) ) ) ) ) ) ) )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
パシャパシャ
0228デフォルトの名無しさん
NGNG> 穴モナ
これいいかも
0229デフォルトの名無しさん
NGNG(´∀`) <およびかい?
~~~~~~~~
0230デフォルトの名無しさん
NGNG0231ひげぽん ◆Ngzcp/NZpA
NGNGMonaで次に何を実装しようかと、考え続ける日々です。
そろそろプロセスの概念を決めるのが良いのかな。
0232デフォルトの名無しさん
NGNGこれからも頑張って下さいね。( ´∀` )
漏れは今、monaのブート部分みて勉強してます
0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNGhttp://osdev-j.sourceforge.jp/pukiwikiacc.php?AnotherMona
にある、AnotherMonaの特徴に「プロセス空間の分離」とあるけど、
ソース見る限り、カーネル内のタスクは、cr3(page dir base)も固定、
セグメントも共通になっているので、分離されてないと思う。
また、int 22hハンドラを見ると、全てレベル0で走行するので、保護でき
てない予感。
サブシステムをタスクにする意味って、保護しないなら何かあるの?
今後修正する予定なのかな?
0236235
NGNGベースとリミットが全く同じなので全く保護されていない。
また、システムコールのfork()をみると、cs,ss,dsのdpl=0,rpl=0なので、
やはりレベル0のまま。
マイクロカーネルの問題の焦点は、異なるメモリ空間でのデータの参照や
レベル間の遷移を如何に高速に出来るかという点にある。
そこが未だに解決されてないマイクロカーネルの弱点で、モノリシックカーネル
に対する最大の弱み。
また、逆に今のようにシステムタスク間で、保護壁がないならば、マイクロ
カーネルの目的である安定性は達成できない。
マイクロカーネルが、出現時期は新しくとも、良い形態とは限らない由縁。
0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNGマイクロカーネルは優位性が薄いってよく言うけど
具体的に何がネックなのか知らなかったから。
ここはみんなの勉強場所なんだからそう突っ掛かるもんでもないでしょ。
0239デフォルトの名無しさん
NGNGマジで参考になった。
0240デフォルトの名無しさん
NGNG2−3日前ぐらいにL氏が「Minixのマイクロカーネル構成は変」
と言ってた内容と等価なハナシで,それを具体的な内容で説明してくれてる
ので折れも参考になった。
ひげぽんやアナモナ作者さんもタネンバウム先生の本から学んで
いて,現段階ではMinixの弱点(or手抜き)も とりあえずそのまま
持ち込んで,後で改良の予定なのかな?
0241デフォルトの名無しさん
NGNG作ったと言うより必要な部分だけ取り出しただけだったり、、。
0242デフォルトの名無しさん
NGNGCPP版Minixらしいよ
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGよくある話だが、開発者にとってのメリット(?)にコード管理が楽になった気がすると言うものがある。
この場合、コード的には、タスクとしてカーネルから分離しちゃうから。
そして、使用者には何のメリットにもならない事が多い。
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNGまだ見てないけどsource0601.zipで解決したのかな
0247デフォルトの名無しさん
NGNGそこから必要な部分を抜き出し,CPPに書き換えてMona風に実装
ということを,もしアナモナ作者さんがしてても何の問題もないし,
そういうアプローチを手法の現場を見せてもらえるとしたら,
少なくとも折れにはとても興味深い(勉強になりそう)
作者さんも慌てて作り直す必要はないと思う。
てか,作者さんの解説が出てくることを期待-!
,,,,,、これって粘着なんですかねぇ?
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNG変な奴等だ。
0253デフォルトの名無しさん
NGNG仮にも、人様のやってることを「ただの道楽」と言えるほど、おまえはえらいのか ?
2ch で、言葉の使い方にいちゃもんつけたくないけど、ここは結構良スレだから、荒らすのはやめてくれ。
おまえは、荒らしじゃないと言うかもしれないけど、>>250-252 なんかが来るきっかけになりうると言うことを考えてみてくれ。
0254デフォルトの名無しさん
NGNGその書き方で人にどうこう言えるのかい?あんたは
0255ななみたん@誕生日
NGNGママーリしるヽ(`ー´)ノ ⌒ ○
0256デフォルトの名無しさん
NGNG0257249
NGNG聞きたかっただけなんだけど。それもいかんのかね?最近の2chは。
俺からすると>>253が荒らそうとしてるように見えてしまうんだけど
0258デフォルトの名無しさん
NGNG実験と勉強かなあ。
普及目的って訳じゃないと思う。
まあ誰か曰くオナニーからセクースが生まれる事もあるらしいから。
0259デフォルトの名無しさん
NGNG0260ひげぽん ◆Ngzcp/NZpA
NGNGMonaにおけるプロセスの定義とそのインターフェースおよび実装に
ついて非常にまったりと考えていました。(多忙につき・・・)
結局はボツになりましたが・・・
以下のような感じに考えていました。
Process#init(), destroy()はオーバーライドしてもいいよ
Process#execute() = プロセスの実体で必ずオーバーライドしてね。
で、Process#main()がその呼び出し順序を保証すると。
これに加えて、Process生成の際のnew演算子をオーバーライドしておけば
幸せかもというアイデアでした。
ただ、重大な欠点がありまして
1.プロセスを1つごとに違うProcess型が必要(継承が必要)
⇒KernelProcessだけは、継承による型付けが必要だが
UserProcessはsetEntryPointを用意して継承を必要なくすので一応解決
2.クラスのメンバ変数はstaticでない限り関数ポインタを取得できない(C++の仕様?)
⇒mainのアドレスをeipにセットできない。
考えてみればあたりまえですね。。。。
かといってstaticにしてしまうと、全てのインスタンスに共通なものになって都合が悪い。。。
というような、堂々巡りをしつつ改良しています。
0261ひげぽん ◆Ngzcp/NZpA
NGNGdword eip;
dword cs;
dword eflags;
dword eax;
dword ecx;
dword edx;
dword ebx;
dword esp;
dword ebp;
dword esi;
dword edi;
dword tick;
dword pid;
class Process* process;
ProcessInfo* prev;
ProcessInfo* next;
};
0262ひげぽん ◆Ngzcp/NZpA
NGNGpublic:
Process() {
pinfo_.process = this;
}
virtual ~Process() {
}
int main();
protected:
virtual void init();
virtual int execute() = 0;
virtual void destroy();
public:
ProcessInfo pinfo_;
static void setup();
};
int Process::main() {
int error;
init();
error = execute();
destroy();
return error;
}
0263デフォルトの名無しさん
NGNGあなたがどう言い訳しようとしても、>>250-252 見たいな書き込み誘発しているのは事実。
なんでそうなるかを考えたほうがいい。
0264249
NGNGまさか>>253=>>263のような粘着厨を呼び寄せる結果となるとは思っていませんでしたので…
自分の書き込む前にはその書き込みによってどのような類の人間が呼び寄せられ・その人間の粘着により
どれほどスレを真面目に読んでいる方々に不快な思いをさせてしまうのかを重々考えねばならないと反省しております。
0265デフォルトの名無しさん
NGNG>あなたがどう言い訳しようとしても、>>250-252 見たいな書き込みや
>>>253-254 >>263-264 見たいな書き込み誘発しているのは事実。
>
>なんでそうなるかを考えたほうがいい。
>
>
>って訳で、まあ流しとけや >263
>>264
ってやろうとしたら先越されちまったい。
あんま気にすんなや。
ってえか流しとこう。
0266jack-11
NGNGご指摘の通り現在のバージョンは殆どMINIXをCPPに書き換えただけのものです。
いわば、実験段階の前準備というところでしょうか。
現在の進行状況は、FSのマルチスレッド化をしているところです。
最終的にはメッセージ機構も含めてカーネルの基本部分も書き換える予定ですが、素人一人ではどうなるか。
まぁ、気長に見守って下さい。
0267デフォルトの名無しさん
NGNG> 粘着厨を呼び寄せる結果となるとは思っていませんでしたので…
全然反省してないやん。
0268デフォルトの名無しさん
NGNG楽しみに待ってます!
0269デフォルトの名無しさん
NGNGFSってファイルシステムのことですよね?
ファイルシステムのマルチスレッド化って、
Apacheみたいなものをイメージすればいいんでしょうか?
0270jack-11
NGNGアパッチのソースは見たことないので、アパッチのイメージとはどういうものかわかりませんが、
FSのマルチスレッド化を簡単に言うと、
1)ユーザープロセスA,Bがある。
2)Aがopen(file1), Bがopen(file2)のシステムコールをFSに発行する。
を前提として、
現在の処理方法では、Aの処理が終わるまで、Bの処理を受け付けません。
が、マルチスレッド化をすれば、Aの処理途中でも、Bの処理を受付、場合によってはBの方が早く終わる場合もあります。
FSのメインは単にメッセージを受け取るだけ、あとはFSのクローンが共有データのロックをしながら処理できるところまでとことんやるというのが、マルチスレッド化です。
もちろん、これはFSに限りません。現在は実験段階ですので、FSでやっていますが。
0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNGApacheの動作を大雑把に言うと、親プロセスがポート80にきた要求を
複数存在する子プロセスの暇なやつに処理させる。って感じ。(大雑把すぎたか・・・)
デバイスがひとつだと、後発の処理は待たされる。って考えであってますかね?
それとも、多重に要求を受け取り、IOスケジューリングをするとか考えているのでしょうか?
もしかすると、Openシステムコールの処理実態であるスレッドAがあって、
スレッドAがスリープするとIOも一時休止するって感じでしょうか?
FSスレッドのスケジューリング=IOスケジューリング、と考えたらいい?
0275デフォルトの名無しさん
NGNG0276one of all
NGNGプロセスを保存できるだけで、スレッドは1つしかない
マルチスレッド
スレッドが幾つかあるが、プロセスは1つしかない
0277269=272
NGNGスレッドの定義は製作者によりばらばらなので、
このスレの前の方では適当に定義すればいいって流れだったような気がする。
Linuxでは主に プロセス≒スレッド 的でしょ。クローンシステムコールも変わってきてるし、
pthreadの完全(?)な実装も進んではいるみたいだけどね。
Solarisも8と9では実装が大幅に変わったでしょ。ハイブリッドじゃなくなった。
ジョブ、タスク、プロセス、スレッド、ファイバなんて、OSの作り方によっては、
全部同じものとして、実装することも可能。そんなことしないと思うけど。
Apacheの話は、あくまでも、イメージのたとえで出しました。
実装自体は、ユーザスレッドなのかカーネルスレッドなのか、
子プロセスなのか知らない。(語句の突っ込みは勘弁)
とまぁ、素人知識なので、間違っていたらスマン。
0278デフォルトの名無しさん
NGNGわかってるみたいで安心した。
でもね、プロセスとスレッドの二つの言葉を同時に併用してる以上、明確な区別は
付けておく方が混乱を防げると思うのですが、いかがでしょう?
0279デフォルトの名無しさん
NGNG混乱したい奴はしておけ、とか
混乱しそうになったら誰かが防いでくれるさ、とか
SymbianOSやEPOCのように、オブジェクト指向ばりばりなOSになりますように。
0280デフォルトの名無しさん
NGNG多分cygwinだとOKなんだろうけど。以下の箇所です。
○mona_v1.0/src/Semaphore.cpp:
#include<semaphore.h>
○mona_v1.0/src/disp.cpp:
#include<semaphore.h>
○mona_v1.0/src/env/dependencies:
62:Semaphore.o: Semaphore.cpp include/semaphore.h include/kernel.h \
92: include/disp.h include/io.h include/pic.h include/semaphore.h \
0281280
NGNGあとcore.asmという名前は他のに変えられないですかね?kcore.asmとかkernelcore.asmとかmonacore.asmとか・・・。
某ツールを使ったらメモリダンプのコアファイルと間違えてソースを消されちゃったから。
これはどうでもいいか。
0282デフォルトの名無しさん
NGNG0283デフォルトの名無しさん
NGNG凄げぇツールだ……。良ければ、名前を教えてくれ。
0284ひげぽん
NGNGご指摘ありがとうございます。
Semaphoreの件は対応いたします。
ただ大変申し訳ないのですが、現在諸事情により
cvs commitできない環境におりますので
しばらくはこのままの状態が続きます。
0285山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0286デフォルトの名無しさん
NGNG ̄ ̄ ̄∨ ̄ ̄ ̄  ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧∧ ∧_∧
( ゚Д゚) ( ´д`)
⊂○ ○ヽ ||””””””””””|
| | ̄ ( ) 山崎渉(^^)( )
/ /\\ .||_____|
/ / > / / / ) )
(_) ��> (_) (_)
0287デフォルトの名無しさん
NGNG0288あぼーん
NGNG0289_
NGNG0290デフォルトの名無しさん
NGNG0291超先生@divRR=∞ ◆leaf/RYZgY
NGNG0292デフォルトの名無しさん
NGNG0293ひげぽん ◆Ngzcp/NZpA
NGNGプロセススイッチはiretdを使用しているのだが
特権レベル0⇒3の場合のCPUの動作の自分の理解がただしいか
どうかがわからないので調べ中
iretd
現在のスタックから eflags, eip, csの取り出し
cs切り替える際に特権レベル0⇒3なので
現在のスタックに格納されているss:espをpopしてセットする
これが間違っている可能性が捨てきれないなあ。
intelのマニュアルを熟読せねば
0294デフォルトの名無しさん
NGNGユーザーモードのプログラムを呼び出す時にこの機能を利用してスタックにss:espとcs:eipをpushしてiretするやり方があるです。
某OSも最近までこの方法を使ってました。( ̄ー ̄)
0295ひげぽん ◆Ngzcp/NZpA
NGNG詳しいご解説ありがとうございます。
私も同じように理解して
ttp://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/mona_v1.0/src/core.asm?rev=1.11&content-type=text/vnd.viewcvs-markup
_arch_switch_process: 同レベル用
_arch_switch_process_to_user_mode: レベル低いほうへ遷移用
を作成しましたがうまくいっていません。
ひょっとしてeflagsはpushしなくていいとかではないですよね。
うーむ。
0296ひげぽん ◆Ngzcp/NZpA
NGNGiret時に
00015320592i[CPU ] (mch) iret: Return with DPL != RPL. #GP(selector)
とでていた。
これがてかがりになりそう?
0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNG0299ひげぽん ◆Ngzcp/NZpA
NGNGtssのリング0スタックは適切に設定してますか?
はい。
設定しています。
ということは、ユーザー用のコードセグメントのセレクタ値0x28が
間違っているということでしょうか。
試してみます。
0300ひげぽん ◆Ngzcp/NZpA
NGNG>>PANIC<< iret: SS.rpl != CS.rpl
となりました。
現在調査中
0301ひげぽん ◆Ngzcp/NZpA
NGNG出来ている予感。
その後タイマ割り込みで3⇒0の遷移でこけている模様。
00033791613p[CPU ] >>PANIC<< iret: SS.rpl != CS.rpl
とでています。
3⇒0の遷移のときは
現行TSSのss0, esp0が参照されるのは知っているのですが
cs=0x30(0x3b) ユーザーモード用コードセグメント
ss=0x18 カーネル用スタックセグメントで rplが違うと起こられているっぽい。
0302デフォルトの名無しさん
NGNG0303ひげぽん ◆Ngzcp/NZpA
NGNGアドバイスありがとうございます。
現行TSSのss0は、dpl0ですが
rpl葉、あえてかえる必要はあるのでしょうか?
タイマ割り込み時にdpl3のCSはどうなるかが
分かっていないようです。
0304デフォルトの名無しさん
NGNG割り込みはコンテキスト切り替えとかが絡むのでdpl=rpl=0のセグメントで動かすのが普通、かな?
0305デフォルトの名無しさん
NGNG割り込みでリング0に移行する時は割り込みゲートでdpl=rpl=0のcsをロードし、リングが変わるのでtssからdpl=rpl=0のssとespをロードするです。
0306デフォルトの名無しさん
NGNGシステムコール等のリング3から直接呼び出す割り込みはdpl3にするのが普通です。
0307ひげぽん ◆Ngzcp/NZpA
NGNGcs=0x08 ds=0x10 ss=0x18 dpl=rpl=0
プロセススイッチ開始(0 to 3)
cs=0x28 ds=0x30 ss=0x38 dpl=3
cs=0x2B ds=0x30 ss=0x3B rpl=3なのでスタックにはss=3Bでセット
iretで3に移行
次のタイマ割り込み時に自動的に特権レベル0へ移行するはず。。
このときの動きが分かりません。
cs=0x28? ss=0x18(現行TSSからセット)
のような状態になっているのでしょうか?
タイマ割り込み時に自動的に特権レベル0へ移行の部分でbochsがこけているような
印象です。
0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNGしかし携帯はきついw
そろそろ落ちる
0310デフォルトの名無しさん
NGNG最初
cs=0x08 ss=0x18
iret
スタックからeip,cs,eflags,esp,ss 取り出し
cs=0x2B ss=0x3B
割り込み
ゲートからcs,eip、tssからss:esp 取り出し
cs=0x08 ss=0x18
これでOK?
あと、フラットモデルでssとds,esをあえて別のセレクタにする意味はあまりないです。
んじゃ落ちです。
0311ひげぽん ◆Ngzcp/NZpA
NGNGユーザーモードの実験に成功した模様です。
割り込み時に怒られていた原因は
割り込みのタイミングで、プロセスのレジスタやらセグメントを保存していたのですが
SSは、割り込みの開始とともにカーネル用に切り替わっていました。
それを無理やりユーザー用スタックセグメントとして
使用して怒られていました。
0312某携帯厨
NGNG0313ひげぽん ◆Ngzcp/NZpA
NGNG携帯からのご支援ありがとうございましたw
おかげさまで、VirtualPC, bochs,実機での動作確認が出来ました。
この実験を参考に実際にコードを整理していこうと思い案す。
0314ひげぽん ◆Ngzcp/NZpA
NGNGg_process_manager = new ProcessManager();
UserProcess* process1 = new UserProcess("user_process ");
Process* process2 = new Process("krnl_o ");
Process* process3 = new Process("krnl_n ");
Process* process4 = new Process("krnl_m ");
Process* process5 = new Process("krnl_o2 ");
UserProcess* process6 = new UserProcess("user_process2");
Process* process7 = new Process("show_process ");
g_process_manager->addProcess((Process*)process1, (virtual_addr)userTest);
g_process_manager->addProcess(process2 , (virtual_addr)disp_name2);
g_process_manager->addProcess(process3 , (virtual_addr)disp_name3);
g_process_manager->addProcess(process4 , (virtual_addr)disp_name1);
g_process_manager->addProcess(process5 , (virtual_addr)disp_name4);
g_process_manager->addProcess((Process*)process6, (virtual_addr)userTest);
g_process_manager->addProcess(process7 , (virtual_addr)disp_process);
0315ひげぽん ◆Ngzcp/NZpA
NGNG半ば投げやり気味ですが以下の特徴があります。
・FAT12ブート
ブートストラップがFAT12ファイルシステムよりKERNEL.IMGを
読み込んでカーネルがスタートします。
・FAT12のファイル読み書き
ファイルシステムとしてFAT12を試験的に採用しました。
ファイルの作成・読み書きが可能です。
※今回の配布されているカーネルイメージにはFAT12のデモは採用されていません。
・カーネルスレッドの廃止
以前使用していたカーネルスレッドの廃止をしました。
・プロセスの導入
プロセスという概念を導入しました。
プロセスはクラスProcessとして実装されています。
プロセスの管理はクラスProcessMangerが行います。
pid, スタックの割り当てなど。
ProcessManagerはスケジュール機能をクラスSchedulerに委譲します。
・カーネルモード・ユーザーモードのプロセスの導入
DPL 0/3 の両モードのプロセスの動作を行えるようになりました。
・メモリ周り
システムトータルメモリの取得・現在の使用量取得API
・ロギング
info関数を追加 log4jのようにレベルに応じたメッセージ出力が可能になり。
カーネルのデバッグ効率が上がりました。
ダウンロードはこちらからどうぞ
ttps://sourceforge.jp/projects/mona/files/
0316ひげぽん ◆Ngzcp/NZpA
NGNG・プロセスのsleep/wakeupの実装
・スケジューラーをもう少しまともに。
・ページディレクトリの切り替えによるプロセス空間の分離。
・オンデマンドページング
・プロセス間のメッセージ通信
・シグナル(のようなもの)
・ファイルシステムのユーザーモード化
0317デフォルトの名無しさん
NGNG0318ひげぽん ◆Ngzcp/NZpA
NGNGいろいろと進展がありました。
ご支援・ご指導くださった方々に深く感謝いたします。
今後もゆっくりペースではありますが、続けていきますので
今後ともよろしくお願いいたします。m(__)m
0319ひげぽん ◆Ngzcp/NZpA
NGNGsleep(ProcessInfo*, dword tick)を作成しました。
プロセスは、tick(tick)だけsleepすることが出来るようになりました。
tick経過後以降にSchedulerによってwakeupされます。
※システムコール化されていないので現時点ではUserProcessはsleepできません。
課題
最新版をビルドしていただけると分かるのですが
wakeupタイミングが複数プロセスで重なったときどうするか。
各プロセスのsleep/wakeupのタイミングで、dispatchキューにいるのに
いつまでたってもCPUタイムをもらえないものがいる。
Semaphore関連でも同様
などスケジューラー周りで問題があります。
他のOSのスケジューラーがどのような方法を採用しているか
興味のあるところです。
0320ひげぽん ◆Ngzcp/NZpA
NGNG>いつまでたってもCPUタイムをもらえないものがいる。
これは、単純なプログラムミスでした。
0321ひげぽん ◆Ngzcp/NZpA
NGNG2点分からないことがあります、ご存知の方がいらっしゃいましたら
アドバイスをお願いいたします。
(1)プロセススイッチのコスト計測
Monaのプロセススイッチにかかっている時間(コスト)を計測する良い方法はないでしょうか。
正確に言うならば、現状Monaはタイマ割り込みの度にプロセススイッチを行っているので
タイマ割り込みの開始から、iretまでの時間を計測したいです。
計測の精度は、タイマ割り込みの間隔と比較できる程度の精度が欲しいです。
プロセススイッチにかかかる時間、タイマ割り込み間隔、プロセスに与えられるCPU時間を
比較しながらスケジューラを作成したいというのが動機です。
(2)システムコール時に問題なく使えるレジスタについて
システムコール時に、システムコールタイプや、システムコール引数を
レジスタにセットしてintしようと考えています。
Monaは、C++で書かれていてgccでコンパイルされます。
このときに安全に使用できるレジスタを知りたいのですがどのように調べればよいでしょうか。
最悪の場合gccの吐くアセンブラコードの統計を取れば何とかなるとは思うのですが。。。
0322デフォルトの名無しさん
NGNGgotoが読みづらい。
でも、2.5あたりでスケジューラに大きく手が入ってたから
2.6のtest版とかを見てみるのもいいのかも。
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNGお前が相変わらずうざいだけに1票
0325デフォルトの名無しさん
NGNGふっふっふっふっふ、苦しめ苦しめw
0326デフォルトの名無しさん
NGNG(1)
TSC使うのが一番簡単じゃないかねえ。
精度も問題ないし。
(2)
ebx,esi,edi,ebpは関数を呼んでも壊れない事が保証されてる。
gccのソースあるなら、gcc/config/i386/i386.hのCALL_USED_REGISTERがそれだ。
でも、インラインアセンブラ使うなら、全部のレジスタをclobberしてしまえば、
なにも考えなくていいような気もする。
0327デフォルトの名無しさん
NGNGプログラマとして何年もバリバリやられてきた方たちなのでしょうか?
なんだか「OSの開発」と聞くと、ハッカーの様な人物を思い浮かべます。
0328デフォルトの名無しさん
NGNG俺もいつかは…
0329デフォルトの名無しさん
NGNGpart2から見てみなー。
0330ひげぽん ◆Ngzcp/NZpA
NGNGアドバイスありがとうございます。
>TSC使うのが一番簡単じゃないかねえ。
RDTSC命令が使えますね。求めていたものが見つかりました。
(2)
>ebx,esi,edi,ebpは関数を呼んでも壊れない事が保証されてる。
>gccのソースあるなら、gcc/config/i386/i386.hのCALL_USED_REGISTERがそれだ。
ありがとうございます。きちんと規定されているようなので
安心して使用できそうです。
0331ひげぽん ◆Ngzcp/NZpA
NGNGタイマ割り込み間隔:スケジューラ=0x2800000:0x6000
タイマ割り込み 10msのはずなので(どこで設定しているんだろう・・・)
スケジューラ 6nsほどということになります。
0332ひげぽん ◆Ngzcp/NZpA
NGNGシステムコールの実装をしているところで
int 0x80をユーザーアプリから行ったところ
なにやらエラーがでていて調査中です。
00007742134i[CPU ] PE is 1
00007742134i[CPU ] VM is 0
00007742134i[CPU ] CPL is 3
00007742134i[CPU ] IOPL is 0
00007742134i[CPU ] addr is 964
00007742134i[CPU ] len is 2
00007742134p[CPU ] >>PANIC<< allow_io(): TR:io_base <= 103
io許可あたりだと思うので現在調査中です。
0333デフォルトの名無しさん
NGNGPentium4とPentium3以前では、結果が大きく変わります。
アーキテクチャが大きく変わって、P4はパイプライン20段+α、P3は10段+α。(だった気がする)
単純に考えると、パイプラインストールのコストの違いにより、モード切替コストが違います。
(詳細に述べると少し違いますが、あくまでも単純にってことで勘弁)
P4は動作クロックが大きく単位時間当たりの命令実行数が多いので相対的にモード切替コストがでかいです。
この辺は、nsec msec の世界だから、とりあえず気にしないってのもあり。
インテルアーキテクチャはマイクロコードで実行なので、
RDTSC命令の前(前後?)にシリアル化命令(?)ってのを入れると、より正確に計れるそうです。
RDTSC命令やシリアル化命令によって、動作が変わって正確じゃなくなりますけどね。
0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNG他にはAthlonやDuronやS3なども。
まぁ、Monaはマイクロカーネルなんだから、モード切替コストをおさえるために、
P4向けにはsysenterが必要になるでしょうね。
0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNG出来るかなぁ。
0338ひげぽん ◆Ngzcp/NZpA
NGNG> RDTSC命令の前(前後?)にシリアル化命令(?)ってのを入れると、より正確に計れるそうです。
> RDTSC命令やシリアル化命令によって、動作が変わって正確じゃなくなりますけどね。
情報ありがとうございます。
>>334さん
> モード切替オーバーヘッド軽減のためにsysenter命令使いませうヽ(`ー´)ノ
インテルのマニュアルで調べました。
おもしろいですね。まさにシステムコール用ですね。
サポートしているCPUがわりと限定されてしまいそうなのが残念です。
0339デフォルトの名無しさん
NGNG将来を考えるとsysenter命令に対応しておいた方が得策だと思う
sysenter命令用に設計したAPIはstubを細工すれば非対応cpuでも
int命令等で呼び出せるけど逆は難しい
ちなみにamdにはsyscallとゆう別の似た命令があるが
思想の違いからか動作が微妙に違う
0340デフォルトの名無しさん
NGNG逆にマイクロカーネルこそモード切替が増えると思ってたけど、勘違いか。
Monaアプリってどうやって作るんだろう。
やっぱ、カーネル同様C++なんだろうか。
ヽ ___\(\・∀・)< APIまだぁ?
\_/⊂ ⊂_)_ \_______
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|
| .|/
0342デフォルトの名無しさん
NGNGモノリシックだとAPI処理で必ずカーネルモードに移行する
マイクロはどうしても必要な時以外ユーザーモードで処理する
マイクロでカーネルモードを頻繁に呼び出すのは設計に問題がある
0343デフォルトの名無しさん
NGNGOSサーバをユーザプロセスとして動かしているわけだから、プロセス切替が起こり
当然モード切替も起こると、思っていたのですが、これは古い実装?
MacOSXがBSDサブシステムをカーネルにくっつけたのもこの辺が理由かと思ってたのですが。
ちなみに、APIといっても、カーネルまで達せず、ライブラリで処理して返すものもありますよ。
MonaのAPIは、MONAPIとか呼ばれるんだろうか・・・
0344ひげぽん ◆Ngzcp/NZpA
NGNG> これから出るcpuはsysenter命令に対応してるんだし
> 将来を考えるとsysenter命令に対応しておいた方が得策だと思う
>>340
なるほど。確かにおっしゃる通りなのですが
我が家にはAMDマシンしかないというわながあるんですw
> Monaアプリってどうやって作るんだろう。
> やっぱ、カーネル同様C++なんだろうか。
予想ですが、アプリはC, C++どちらでもかけると思います。
ただドライバは、C++でインターフェースを強制する可能性があります。
たとえばドライバはこのクラスを継承してくださいみたいな。。。
> ちなみに、APIといっても、カーネルまで達せず、ライブラリで処理して返すものもありますよ。
> MonaのAPIは、MONAPIとか呼ばれるんだろうか・・・
なるほど。MONAPI(もなぴ)おもしろいですね。
0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNG0347みつみ里美
NGNG0348デフォルトの名無しさん
NGNGやらないか?
0349デフォルトの名無しさん
NGNG6ns(ナノ秒)じゃなくて6μs(マイクロ秒)だよ。
0350デフォルトの名無しさん
NGNGおいおい、自分が>>70で言ったこと覚えてるか?
過去はいいから今後どうするか決めろよ
リリース名とファイル名を一致させればいいんじゃないの?(mona-0.0.8)
何あのDOS時代みたいなダサいリリース名(激藁嘲笑
0.0.8aのaって何?Alpha?
バージョン番号で分かるから無意味なことヤメれ
そうじゃなくて
0.0.8a -> 0.0.8b -> 0.0.8c
みたいにするかもって意味?
一般的な命名にするのが無難だってmona-0.0.x.tar.gzにしたんじゃなかったの?
今じゃGNUからMSまでx.x.x.xみたいにしてるって知らないの?
こういう細かい所に気が回らないようではOSなんて作れないとだけ言っておく
んじゃ!
0351デフォルトの名無しさん
NGNG> んじゃ!
二度と来るなよ、基地外
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNGひげぽん信者、ご苦労様です
0355デフォルトの名無しさん
NGNG必ず粘着粘着って噛み付いてくる信者がいるね
おー、こわw
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNGひげぽんが俺ルールなのは独自主義を目指してるからじゃなくて
単に無知だからでしょ
0359ひげぽん ◆Ngzcp/NZpA
NGNGこんばんは。ご指摘ありがとうございます。
mona-0.0.8というリリース名が良かったということですね。
次は忘れないようにmona-0.0.9といたします。m(__)m
0360デフォルトの名無しさん
NGNGリリース名なんて気にしなくていいよ。それよりガンガレ!
応援してるぞ。
0361デフォルトの名無しさん
NGNG別に0.0.8aとかいうバージョン名なんて十分一般的。
自分の知ってるものだけが一般的とか思い込むのは、
視野を狭めるだけと、何度も言われたことがある。
0362Alice ◆GG1SfzBGbU
NGNG0363デフォルトの名無しさん
NGNG漏れはプログラムなんてまっっっっっったくできないモンだから、何いってんのか
サッパリだけど、みんなガンガレ。
ああ、C++ならちょっとだけかじったよ。
インクr・・・ゴメンオレガワルカッタ。
楽しみにしてるよひげぽんサン!
0364山崎 渉
NGNG0365デフォルトの名無しさん
NGNG>自分の知ってるものだけが一般的とか思い込むのは、
>視野を狭めるだけと、何度も言われたことがある。
前半と後半で矛盾してるぞ
0366デフォルトの名無しさん
NGNG特に矛盾はしてないと思いますが。
『「(自分の知っているものだけが一般的)と思い込む」のは視野を狭める』
と
『自分の常識は、世間の常識とは限らない』
とは、別ですよ。
バージョン番号+a,b,cの形は、そんなに使われてませんかね。
よく見かけると思いますが。
ただ単に、文句言いたいだけならいいんですけど。
0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNGプログラマーにむいてないよ
0369デフォルトの名無しさん
NGNGプログラミング的な観点から論じたら?
比較が機械的に出来るのがx.x.x.xみたいな形の売り。
動的ロードするようなドライバとか作った場合、
開発初期だと互換性を保ちきれないから、
バージョンチェックしないといけない。
そういう時は単純にバージョンを数字で並べた方が簡単。
もちろん人に理解しやすくするためにαやβなどの使用もあるが、
αとかβとかはバージョン番号に対するエイリアスとして使う。
0.99.1(1.0α1)みたいなこと。
0370デフォルトの名無しさん
NGNGひげぽんさんはなんでこんなにいい人なんだろう。
GPLは嫌いだからコーディングには協力できないけど、
応援の気持ちを込めてVMWareを寄贈しよっと♥
0371デフォルトの名無しさん
NGNG> 比較が機械的に出来るのがx.x.x.xみたいな形の売り。
そうかぁ ?
別にどんな形だって、意味がきちんと決まってればバージョンの比較関数を書くことは簡単だと思うけどな。
> もちろん人に理解しやすくするためにαやβなどの使用もあるが、
> αとかβとかはバージョン番号に対するエイリアスとして使う。
> 0.99.1(1.0α1)みたいなこと。
よくわからん。
α, βが人に理解しやすいとも思えないし、二重管理する利点て何なの ?
>>370
すげー。
あんたもいい人やね。
0372デフォルトの名無しさん
NGNGαとかβとかはひげぽんが好きみたいだから出しただけ
0373デフォルトの名無しさん
NGNGとある有名ソフトなんて、バージョン3から始まって、次がV3.1、その次がV3.14、その次が・・・
と、とても趣味に走ってるが文句を言う奴は見たことが無い。
0374ひげぽん ◆Ngzcp/NZpA
NGNG御寄贈いただいたVMWare確かに受け取り、動作を確認できました。
Monaの開発を続けていくことでしか御礼は出来ませんが
本当にありがとうございました。
なお、詳細はメールでお送りさせていただきました。
0375350
NGNGなぜかVMwareまで出てきて驚いたが俺のおかげだな(w
0376デフォルトの名無しさん
NGNGそれが良かったかどうかは分からんぞ。
そもそもいい人って理由だけでVPCやVMWをgetできるとは思えん。
きっつい交換条件とかあったんじゃないの?>ひげぽん
L氏だったら受け取りを拒否するだろう。
金を貰って言いなりになるくらいならっつって未踏を批判してたくらいだからな。
0377デフォルトの名無しさん
NGNG何もゲットできないどころかプロジェクト自体も袋小路に陥ってたかも
NWSOSは公開してすぐそんなトラブルがあったし…
少なくともMonaがひげぽんの人格に負う所が大きいってのは確かだろうね
0378デフォルトの名無しさん
NGNGVirtualPCも貰ってなかったっけ?
0379デフォルトの名無しさん
NGNGWindows 95, Windows95A, Windows95B, Windows95 OSR-2 とかだったら困らないのか ?
俺なら、Windows 5.1.2600 のほうがいいよ。
0380デフォルトの名無しさん
NGNGTeX だったっけ ? 今どこまでいってんだろ。
>>376
あんたの言ってることが事実かどうかはわからんけど、万が一事実だとしてもあんたがどうのこうの言う問題じゃないよ。
ひげぽんさんと >>370 さん間の問題だからね。
事実じゃないとしたら、あんたは >>370 サンに非常に失礼なことを言ってるんだけど、それはわかって書いてるのか ?
0381デフォルトの名無しさん
NGNGそんなありふれたものをあげるかどうかなんて大した問題じゃないだろ
彼女や嫁さんを一晩貸してくれる方がずっとすごいことだぞ
0382デフォルトの名無しさん
NGNGそんなありふれたものを貸すかどうかなんて大した問題じゃないだろ
VirtualPCやVMwareをくれる方がずっとすごいことだぞ
0383デフォルトの名無しさん
NGNGうまく揚げ足を取ったつもりだろうが全然ちゃうぞ
ソフトはバージョンが同じならどれも同じだが
女は年齢が同じでも一人一人全然違う
1年間同じOSを使い続けるやつは多いが
結婚して1年間ずっと嫁さんとラブラブなやつは少ない
大抵フーゾクとかに行ってる
最初に付き合った相手と何年か後に結婚したようなやつでさえ
0384デフォルトの名無しさん
NGNGWindows 3.1とWindowsNT 3.1が同じですか、そうですか、、
0385デフォルトの名無しさん
NGNG0386デフォルトの名無しさん
NGNG3.11ってのもあったな
あと、SPxとかSEも。
0387mon
NGNG0388デフォルトの名無しさん
NGNG> 女は年齢が同じでも一人一人全然違う
MS のバグより始末の悪いやつもいるからな。
0389デフォルトの名無しさん
NGNG気持ち悪いんですけど。。
前スレ1000getしたやつの陰謀か?(w
0390デフォルトの名無しさん
NGNGひげぽんのスレだから別にいいかと...。
気持ち悪けりゃ来なきゃいいじゃん。
0391デフォルトの名無しさん
NGNG0392デフォルトの名無しさん
NGNG* * 割 れ 厨 3 7 0 は 逝 っ て 良 し * *
0393デフォルトの名無しさん
NGNG0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNG0396デフォルトの名無しさん
NGNG夏だねぇ〜。
0397デフォルトの名無しさん
NGNGここいらで疑惑を晴らすためいっちょMonaオフでもしないか?
当然、渦中のひげぽん、370は強制出席
このスレで時の人になったokuokuやわたもちも来ないと意味ねーな
でもさすがにLやKや横谷は無理か..........
0398デフォルトの名無しさん
NGNGでもいい女は本当にいい。
……と気を許して結婚したのも束の間、
豹変してダンプ松本になるやつも多いが(泣
0399デフォルトの名無しさん
NGNG0400400
NGNG∬∬´▽`)
(( ⊂ ) ⊃
し(_)
(( 〆〃ハハ
/⌒∬´▽`)
⊂,,)^∪-∪
ずざー。400ゲット。
 ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄
〆〃ハハ
⊂' ⌒つ∬´▽`)つ ペタン…
ノハハベ
(´▽`∬∬ ミ
⊂' ⌒∪ ノ ∪ ムクリ
ノハハベ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(´▽`∬∬<やったぁ!ついに400ゲットできたよー
( U )) \_________________
(__)\ノ
0401デフォルトの名無しさん
NGNG,. '" `丶、
/ ` 、
,..-‐/ ...: ,ィ ,.i .∧ , ヽ.
. ,:' .l .::;',. :::;/..://:: /,':/ ', l、 .i ヽ
. ,' ..::| .::;',' :;:','フ'7フ''7/ ',.ト',_|, , ',.',
,' .::::::!'''l/!:;'/ /'゙ / '! ゙;:|:、.|、| 'l
. ,'. .:::::::{ l'.l/ 、_ _,. 'l/',|.';|
l :::::::::::';、ヾ  ̄ `‐-‐'/! ';. '
. ! :::::::::::/ `‐、 ゝ |'゙ |
| ::::::::/ \ 、_, _.,.,_ ノ::: ! ひげぽんが、幸せになりますように・・・
|::::/. _rl`': 、_ ///;ト,゙;:::::./
.. `´ /\\ `i;┬:////゙l゙l ヾ/
,.:く::::::::`:、\ 〉l゙:l / !.|
. /:.:.:.:\:.:.:.:.`:、ソ/:.:| | |
/.:.:.:.:.:.:.:.:.:\:.:.:.:У:.:;l /./
. /:.:.:.:.:.:.:.r'´`‐,`、:/.,.:‐{ | !`:、
,'.:.:.:.:.:.:.:.:.';_,゚.,ノ.:./,:':.:.:.:', | |`、:|
!:.:.:.:.:.:.:.:.:.:.゙、:.::/:.:.:.:.:.:.ヽ, / ,!:.:`、
0402ひげぽん ◆Ngzcp/NZpA
NGNG・プロセス間通信
・システムコール
・プロセス空間
などの設計をしています。
上記3つは、結構絡み合っていて楽しいです。
0403デフォルトの名無しさん
NGNG今必要かどうかわかりませんが、
メモリの強制アクセス制御方式(Mandatory Access Control:MAC)
バッファオーバフロー対策のOpenwall、SSP
などを知っていいたほうがいいかも。
0404ひげぽん ◆Ngzcp/NZpA
NGNG>メモリの強制アクセス制御方式(Mandatory Access Control:MAC)
>バッファオーバフロー対策のOpenwall、SSP
現時点では、まだ未検討ですが将来的には必要そうな概念
なようですのでMona Wikiのほうでタスクリストに入れておきました。
アドバイスありがとうございました。
0405長々スマソ1
NGNGまぁおれがすべて読んで思ったことやらを書いてみる。
まず、全部読んだが未だにブートさえもわからん。まぁまずはアセンブリをやる。ってか学校でZ80やっているが、互換性がまぁまぁあると見ている。
まぁまぁだがな。ここで色々なサイトをブックマークしたから、1からやろうと思う。
アセンブリについてはね。たしかMS-DOSをいじくるのもあったから、それでOSについて勉強してみるさ。
ひげはスゲーなーと関心した。行動力と勉強力、そしてそれを即戦力に持っていける技術がね。
あとブートが説明されているのサイトのURL、過去スレのはあぼ〜んだったから、晒させていただく。
ttp://nobumasa-web.hp.infoseek.co.jp/boot/boot.html
あと全体的に言いたいことと言えば、始めはかなりいい調子だったのに、Lさんを叩いて追い出したことは、このスレの中では一番痛い。
Lさんも別なところで色々と叩かれて疲れていたのだろうことを、察することができなかったのも原因であろう。
まぁ同じOSを作る人間、かたやシェア、かたやオープンソースでフリー。難しいさ。
オープンがいいのか、しないのが卑怯なのか。フリーがいいのか、有料が駄目なのか。それはその人の勝手であって叩くところではないなぁと思う。
ただLさんにも非があったと思った。Lさんはどう考えてもぴげぽんさんよりも、成長が早いのは言うまでもなかったのに、
そこに突っ込んでしまった。正直、貴方のようなある程度極めている人としては、どっしりと構えて欲しかった。
もう一度言うが、あなたのほうがひげぽんさんよりも、どう考えても能力はすべて高い。
もちろん貴方が向上心を無くしてしまい、ひげぽんさんが向上心を保てば追いつく可能性があるがな。
そこが一番残念だと思った。
0406デフォルトの名無しさん
NGNG今いるLタソは影武者
0407長々スマソ2
NGNGもしオープンにしていなかったら、ここまで順調に来れたとは思えない。もうちょっと時間が掛かっているだろう。
それは過去スレを見て思った。
確かにパクられる可能性もあるが、ひげぽんにとって間違いなくプラスになっていると確信した。
このOSが出来上がったとき、ひげぽんはみんなに焼肉をおごらなければならないな。
あなたひとりでは、なし得なかっただろう事は、自分が一番よく分かっているはずだし、だからこそ低姿勢であることも、分かるし当然であろう。
まぁ2chだから、こういうプロジェクト立てても、発起人が低姿勢を保てないのと技術が全くなく使えないと言うのが、駄目になる原因であろう。
全部読んだのも数ヶ月前に、ひげぽんが凄いと思ったからだ。そのあと忘れていたが。
正直素人にOSって作れるってこと自体知らなかったし、作っている人がたくさんいることも知らなかった。
いい勉強になる。
俺としては、ゆっくりでもいいとは思う。外部者だからかもしれん。ただここで技術を提供している人にも、あんたを遅いと思っている香具師はいるらしい。
まぁ実際「どこまでできるかな?」って冷ややかな目の香具師もいるだろう。
俺としては気にすることもないと思うが、まぁ協力者なのも事実だし、その辺の兼ね合いは、もめない程度にやってくれ。
もめたら一気にプロジェクトの破壊を招く。たった1日でな。その人間性をクズさんと、頑張れや
0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNG0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNG0413デフォルトの名無しさん
NGNG.imgファイルを作成できたんだが、cygwinでそれからどうやってOSを起動するの?
それとも他の方法があるのでしょうか。
誰か教えてくれませんか?
0414デフォルトの名無しさん
NGNGhttp://mona.sourceforge.jp/dynamic/pukiwiki/pukiwiki/pukiwiki.php?HowTo%2FBoot
0416デフォルトの名無しさん
NGNGなんとかbochsをダウソロードして動かせました。
これを使ってOSの開発の動作テストできるんですね。
設定うまくやれば、ブートプログラムだけでもできるんでしょうか?
まぁ俺にはむりっぽそうだが。
0417デフォルトの名無しさん
NGNGhttp://wiki.osdev.info/index.php?%5B%5B%BE%A1%BC%EA%A4%CB%CF%A2%BA%DC%2F16BitOS%BA%EE%A4%EA%5D%5D
このあたりを見てみると面白いと思うよ。
0418デフォルトの名無しさん
NGNGオレは最初から読んでみて最初はあんたと同じくらいのレベルだと思ったよ。
でも今はもう何言ってるかサパーリだよ。
おまえは勝ち組だよ!
オレは応援するYO!
0419デフォルトの名無しさん
NGNGありがとうございました。
すごく親切な解説で、WebPage作者にも感謝しかありません。
私は16bit windows3.1たぶん486の古いパソコンを持ってまして、
これが16色の表示しかできなく、解像度も680*480くらいなもので、
画像もまともに表示できず、用途と言えば、昔全然良くないエロゲー
(乳首をクリックしたら、女がオナニーしている画像が表示されるような糞ゲー)
で、抜いたことくらいしかなく、売ろうと思っていたのですが、もしもこれが実験機となりうるのであれば、
持っていようかと思いました。実験機といっても、16bit用のになるので、ここで作っているOSは使えませんが。
ブートして、何か文字が表示できたり、簡単なカーネル作ってみたり・・・って10年後の話になりそうですが。
学校始まったら、学校の図書館にでも行って探してみます。古い書籍ばっかりで、
ある意味ここの住人の方々が何時間でもいられるような感じだと思っています。
「初めての486」などなど、たぶんあると思っています。
まぁ、行ってみないとわかりませんが。
少しずつでも勉強してみようと思います。
まずはアセンブリでしょう。学校の実験でZ80やらされていますが、MASMをやってみます。
現時点でこのスレやPart2を読んでも99パーセント理解できない状況ですので。
あとひげぽんのOS(Mona)をBochs上で動作したのをみて、感動しました。
また長々とすみません。逝ってきます。
0420デフォルトの名無しさん
NGNG0421ひげぽん ◆Ngzcp/NZpA
NGNGフォローありがとうございます。
システムコール処理中にも割り込みを受け付けて
プリエンプションが可能なように対応したのですが
動作がおかしいときがあるので調べたところ
システムコールまわり、スケジューラーまわりで
バグがあるようなので対応中です。
syscall_sleepで、dispach_queueが空になってしまうと
NULLプロセスが実行されてしまうというお粗末なミスもありました。
0422デフォルトの名無しさん
NGNGアイドルプロセスを作りましょう。
常にReadyかRUN状態で優先度は一番下。
0423419
NGNGPC-9801 NX/C
CPU : i486SX 20MHz
RAM 12MBくらい(640kB + 10Mb たぶん)
HDD 500MB
解像度 640 * 400
サウンド beepのみ
3.5inchFDD付き
CD-ROM Drive なし
このマシンでフロッピーからブートして、"2ch"と表示させたい場合、
Part2でひげぽんが書いていたブートして"2ch"と表示するアセンブリをイメージファイルにしてフロッピーに書き込んで、できますか?
あと「初めての486」って本の486ってこのパソコンの486のことですか?
何か質問ばっかですみません。無知なことは承知です。
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNGってことはPC98用のアセンブリであればできるんですね。
明日当たり、学校の図書館に行ってみます。何かいいものがあればいいですが。
はじめての486とか、はじめての8086などなどがあったら最高なんですがね。
それは行ってみないとわかりません。
まぁ使えないのであれば売ってしまいます。ただこいつがパソコンであることには
違いないので何かできたらなぁと思っていたのですが、私の知識では到底無理。
にしても、ひげぽんは頭がいいのか、すごい吸収力があるものだ。
あとここの住人の頭の良さにも脱帽です。
0426ひげぽん ◆Ngzcp/NZpA
NGNG>アイドルプロセスを作りましょう。
>常にReadyかRUN状態で優先度は一番下。
実は、アイドルプロセスを追加して対応していたのですが
まだ単純ラウンドロビンで優先順位がないので
if (runキューが空) カレントプロセス=アイドルプロセス
のように逃げています。
0427デフォルトの名無しさん
NGNG今日は休みだから、進歩できそうだな。
頑張れよ。動かして、できるもんなんだなぁと実感したよ。
0428デフォルトの名無しさん
NGNGアセンブリはCPU同じだし、そんなに違わない。
つか同じ。
ブートアドレスとか、メモリマップとか、I/O周りとかが違う。
0429デフォルトの名無しさん
NGNG情報ありがとうございます。参考にさせていただきます。
0430デフォルトの名無しさん
NGNGメアドさらせ。PC98xx用の、その辺の書籍を譲ってやっても良いぞ。
「PC98シリーズテクニカルブック」とかいろいろ有る。
探せば「初めての8086」とかも出てくるはずなんだけど、今ちょっと見当たらんw
0431デフォルトの名無しさん
NGNGReactOSを見守るスレ
http://pc.2ch.net/test/read.cgi/os/1060475345/
現状完成度はまだまだだけど開発速度速い。今月末でexplorerが載るらしいのでそのupdateに期待してみる
0432デフォルトの名無しさん
NGNGそこまでの技術を持っていないので、遠慮させていただきます。
気持ちはありがたくいただいておきます。
0433デフォルトの名無しさん
NGNG> if (runキューが空) カレントプロセス=アイドルプロセス
この判定を省くのが、アイドルプロセスの利点の一つだと思うけど。
スケジューラは何回も呼ばれるので、性能に影響大です。
とりあえずの実装なら、少しだけ走って、キューの後ろにつなぐだけでいいのでは?
ひとつ質問ですが、runキューってReadyキューと同じ意味で使っています?
それとも、別物として実装してます?
0434デフォルトの名無しさん
NGNG横からで大変申し訳ないのですが『PC98シリーズテクニカルブック』を私に譲っていただけないでしょうか?
0435デフォルトの名無しさん
NGNGよろしいですよ。429さんも現在は必要無いとの事なので。
ただし、今確認したところ手元に有るのは「ハードウェア編」のみです。
「bios編」は見当たらない所を見ると友人が持っていったくさい・・・w
これでもよければ送料だけもっていただくという事でどうでしょう?
まぁお礼は拒みませんけど(・∀・)
0436デフォルトの名無しさん
NGNGUNDOCUMENTED 9801/9821 Vol.2 メモリ・I/Oポート編
http://www.webtech.co.jp/undoc/
ここから気楽に見てみるのもいいかもしれません
0437デフォルトの名無しさん
NGNGおお、いいものありがとうございます。
って思ったら一度行ったことがあったようです。たぶん素通りしてしまったようです。
あらためて見させていただきます。
貴重な情報ありがとうございました。
あと明日学校の図書館行ってみます。
休業中でもやっているとのことで、たぶん人もほとんどいないと思うので、のんびりと探してみます。
0438434
NGNGありがとうございます。429さんよろしいですか?
スレ使うのも申し訳ないのでメールでしましょう
[email protected]
0439デフォルトの名無しさん
NGNG/.逝ってよし!
0440デフォルトの名無しさん
NGNGおまえもなー
おまえもなー
0441デフォルトの名無しさん
NGNG0442ひげぽん ◆Ngzcp/NZpA
NGNG症状:
1.bochs ユーザープロセス1つをReadyキューにいれてシステムコール(int 0x80)を実行すると
システムコールからの戻りiretdでエラーになる。
下記以外のエラーも出たりするので、スタックが破壊されているのでは?と推測しています。
00011044914p[CPU ] >>PANIC<< load_seg_reg: SS: new_value == 0
2.Vmware int 0x80を発行してもハンドラが呼ばれていないような様子。
前提:
1.現在システムコールは何もせずiretdするだけ。
_arch_syscall_handler:
iretd
2.システムコールを実行しなければユーザープロセスはきちんと実行され
スケジュール対象となる。
3.システムコール用IDTは、p=1, dpl = 3, s = 0, type=0xe, cs=カーネルコード
4.現行TSSにはss0=0x18(カーネルスタック) esp=0x10000が設定されている。
ちょっとだけはまりぎみです。
0443デフォルトの名無しさん
NGNG「はじめて読む8086」はありましたが、「はじめて読む486」はありませんでした。
ただ同じ人が書いた「はじめて読むMASM」ってのがあったので、一応借りてみました。
あとオペレーティングシステムの仕組みを理解するのに2冊、
「ブートストラップProject2 PC&DOS/V BOISサービスの全貌」1冊。
あとは、BIOSの設定法が載っている本とOSを作るって書いてあるから借りてみたら、ボード用のOSのことだった本が1冊。
計7冊借りてきました。
焦らずゆっくり理解していこうと思います。
0444デフォルトの名無しさん
NGNG初めて読む8086が新書でうってたよ
ちょっとびっくり
僕は昔、2冊かって、2冊ともなくした。
もいっかい買え
0446ひげぽん ◆Ngzcp/NZpA
NGNG解決しました。
プロセスのコンテキストセーブ時にCS & 0x03をして
判断している部分でケアレスミスをしてました。
gccのインラインアセンブラを疑ってしまいました。
全く関係なかったですね(笑)
0447デフォルトの名無しさん
NGNGじゃぁ今から買いに行きます。
最後の一冊だったらおいといてください>買いに行く人
0448デフォルトの名無しさん
NGNGうってなかった
0449デフォルトの名無しさん
NGNG「初めて読む486」ってのは、i486のブートの方法とか載っていますか?
メモリマップみたいのですが。
注文して買ってみようかと思っていたので。
それと、以下のURLから、PDFをダウンロードしたのですが、
このPDFの情報は、重要なものですか?
ものすごく重要だと思っているのですが。
http://x86.ddj.com/intel.doc/486manuals.htm
0450デフォルトの名無しさん
NGNGIntelドキュメントは大事だよー
intelのサイトから落とせなかったっけ?
0451デフォルトの名無しさん
NGNGないよ。
メモリマップはハードの設計依存だし。
ブートの方法は,手元にあるのだと"80x86/80x87ファミリーテクニカルハンドブック"つー本に載ってる。
10年前の本だが…
0452デフォルトの名無しさん
NGNGおお、サンクソ。
ってことは上のURLから落としたPDFを解析しなければならないですね。
頑張ってみます。みなさんスレ汚しすみませんでした。
↓から、「ひげぽんのOS製作奮闘紀」に戻ります。
0453ひげぽん ◆Ngzcp/NZpA
NGNGPDFは重要そうなところは印刷して電車の中で読んだりしました。
やはり一番詳しいのと、意外と難しくないという印象でした。
今日はシステムコール中の割込み許可について
実験してました。
大体うまく言っている予感なので週末に検証しようと思っています。
0454デフォルトの名無しさん
NGNGアドバイスありがとうございます。
0455山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0456ひげぽん ◆Ngzcp/NZpA
NGNG・システムコール中に割り込みを許可する。
・上記割込み許可により、システムコール中にもタスクスケジューラの起動が可能になり、スケジューリングがより平等に行えるようになった。
・システムコールの戻り値が取得できるようになった。
□おしらせ
久しぶりにdoxygenドキュメントを再作成いたしましたので下記で公開中です。
ttp://mona.sourceforge.jp/document/
□その他
Monaプロジェクト成果物のライセンスをGPLから修正BSDライセンスに変更することを検討しています。
ご意見のある方はMona PJ Wikiへお願いいたします。
0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNGフルリライトするなら、別だけど。
0460デフォルトの名無しさん
NGNGって言っても今日発送されただけなんだがね。在庫あと3点だったらしく、危なかったのかなぁ?
でも買う人そんなに居ないだろうし、まぁ良かったと。
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG参考にしたり、取り込んだソースが(あったとき) そのソースが GPL で
なければ問題ないよ。
0463デフォルトの名無しさん
NGNG0464ひげぽん ◆Ngzcp/NZpA
NGNGこんばんは。
>いままでのMonaソースはGPLで配布されてたと思ってた、確かめたら何も書いてなかった。
src/COPYINGにGPLに関して記述があります。
分かりづらくてすいません。
0465460
NGNGって思ってクリックしたら、アンケートに答えたら500円分のギフト券くれるだってぇ。
もったいねぇなぁ、もう注文してモロタ。
0466デフォルトの名無しさん
NGNG一度GPLで配布したものを、違うライセンスにすることは可能なのかな?
個人的には、NYSLが好きだけど。
0467デフォルトの名無しさん
NGNGGPLはあくまでも配布する側と受け取る側と間の契約。
受け取った側は再配布する時にGPLに束縛されるが
オリジナルを配布する人はGPLによる拘束を受けないので
ライセンスを変更して配布することが可能。
この場合、オリジナルを配布するのは著作者、ひげぽんと
その他ソースに対する著作権を持つ人達。
今までそれぞれのソースをマージするのにその合意はGPLという
契約によって行われているのでその人達が新しいライセンス
で契約をしなおして互いのソースをマージしなおす必要はある。
・・・、あれ?stlport以下って大丈夫なのか?
ソースとしては独立してもコンパイル後に同じバイナリー内になる
ソースだったらライセンス違反になっちゃうぞー。
(GPLがそう強制してくる。)
0468デフォルトの名無しさん
NGNGここのライセンスでいいのかな?
GPLではないっぽい。
0469デフォルトの名無しさん
NGNG素晴らしい!
神のような決断!!!
脱GPL最高!!
GUIプログラマでツールキット作ったりするのが趣味だったんだけど、
その当時の知識を掘り起こしてみたくなってきたじゃないですか!!
暇になったらもっとちゃんと考えてご一筆送りたいと思います。
でも今むっちゃ忙しくて盆の間を含めここ2週間家に帰ってなくて、
その間に親が癌だって判明したり無茶苦茶になってるから
あまり期待しないでくださいね!!!
(多分、私の正体ばればれだろうな)
0470ひげぽん ◆Ngzcp/NZpA
NGNG>こらーひげぽん、BBSにアマゾンのバナー付けて儲けようとするなー・・・・・・・
えーと。少なくとも私は儲けてません。単なるフリーススペースの広告だと思われます。
>>467さん
>・・・、あれ?stlport以下って大丈夫なのか?
stlportに関しては先日別の方からもご指摘を受けまして
CVSからremoveしました。
今後別ライセンスで取り込むコードはsrc/cotribディレクトリに格納される予定です。
なおstlportに関しては*現在は*コアカーネルが固まっていないため使用していませんので
一時的にremoveしたままとさせていただきます。
>>469さん
>あまり期待しないでくださいね!!!
>(多分、私の正体ばればれだろうな)
こんにちは。なんとなく分かりましたw
なお。ライセンスの移行は現在、とある方の返答待ちとなっています。
もしご覧になっていたらご連絡ください。m(__)m
0471469
NGNGBSDLについて1つだけ。
私個人はFreeBSDが割と好き。
はっきり言ってLinuxは大嫌い。
2ch外でも犬糞扱いしている。
そんな私でも、逆の人がいることは知っている。
Linuxマンセーで、GPLマンセーで、
BSDはあまり好きじゃないって人。
正直、BSDマンセーな人っていうのは、
古株の人が多くてあまり浮気しない。
だからBSDライセンスにしたからって喜ぶのは
私みたいな基地外だけ。
他にBSDで喜ぶ人ってのは商売っ気のある人かな。
でも正直BeOSでさえ破綻したOS屋稼業なんか無理と思う。
だから商用うんぬんなんてのは実質意味を持たないよ。
(続く...)
0472469
NGNGむしろLinux派かBSDL派かっていう思想表明と受け取られる。
だから上で書いたような派閥争いみたいな視点がクローズアップされる。
だから個人的にはBSDLよりMIT/Xライセンスの方をお勧めします。
(ちなみにGNUでもBSDLよりMIT/Xライセンスが推奨)
実質的な意味は「修正BSDL==MIT/X」なのですが、
Linux派かBSD派かって妙な派閥意識から抜けられるのが良い。
個人的には文体もMIT/Xの方がすき。
特にPermission is hereby grantedって出だしが。
正直、小規模プロジェクトにおけるライセンスってイメージ戦略だから。
Linux優勢な現状、BSD派だって言うイメージをもたれるのは良くない。
私が言いたいのはそれだけ。
ついでだからちょっと付け加えると、
知る人ぞ知るWideStudioの初期でライセンスについて議論が出たとき
同じようなことを言ってMIT/Xに一本化させたりしたこともある。
当時作者はライセンスの知識や思想なんか全然なくて、
適当に他のソフトから持ってきただけだって言ってた。
ひげぽんに似てるかも。
0473469
NGNGMIT/XとBSDLをごちゃ混ぜにするのは何の問題もない。
ただし元々BSDLだったソースコードのライセンス表記を
勝手に書き換えることだけは絶対にダメ。
たとえクローズドにして商用利用したとしてもそれはしてはダメ。
だからWindowsでftpをstringsしたらカリフォルニア大学の(C)が出てくる。
MSがTCP/IPの一部をBSDからパチったってのは事実だし何の問題もない。
っていうか、ソースコードのライセンス表記を書き換えるのは
元記述者の承認を得ないと不可能。
それが唯一可能なのはPublic Domainだけ。
だから今の私はPDSマンセーなんだけど、
sf.jpだとPDSは蹴られるからPDSを勧めたりはしないけどね。
ちなみにBSDLのソースをMIT/Xにしてしまうことは出来るよ。
勝手にクローズドにしていいくらいだからね。
やり方は、元のコピーライトやライセンス表記には手を加えないで、
その上とか下に新しいライセンスを書き加えちゃえばいい。
オブジェクト指向の継承に似ている。
その方法で修正BSDLをGPLに書き換えるのも可能。
(もちろん逆は不可能だし、修正でないオリジナルBSDLのGPL化はダメ)
0474XOrg
NGNGhttp://www.x.org/Downloads_terms.html
Permission is hereby granted, free of charge,
to any person obtaining a copy of this software
and associated documentation files (the "Software"),
to deal in the Software without restriction,
including without limitation the rights to use,
copy, modify, merge, publish, distribute,
and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so,
provided that the above copyright notice(s) and this permission notice appear
in all copies of the Software and that both the above copyright notice(s)
and this permission notice appear in supporting documentation.
(後略)
0475ひげぽん ◆Ngzcp/NZpA
NGNGBSDLを採用することがBSD派?と、本当に思われて
PJ戦略上よろしくないのであればBSDLも考え直さなければならないですね。
0476デフォルトの名無しさん
NGNG作ってみるわ。もちろんWindowsネイティブな。少しまちなー。
0477デフォルトの名無しさん
NGNGよっ、久しぶり。そして逃げるというオチ
0478デフォルトの名無しさん
NGNG「そろそろやってみるか」
じゃないと。
■ このスレッドは過去ログ倉庫に格納されています