OSを作ろうpart12

このエントリーをはてなブックマークに追加
1Be名無しさん
独自にOSを作っているまたは、作ろうとしている人たちのための
スレッドになればと思います。

■前スレ
OSを作ろうpart11
http://pc5.2ch.net/test/read.cgi/os/1093825736/
2Be名無しさん:05/02/20 03:11:38
3Be名無しさん:05/02/20 04:30:38
(゚Д゚)
4Be名無しさん:05/02/20 10:19:43
>1
スレ立て乙
5Be名無しさん:05/03/01 19:36:44
なんでこんなに過疎ってるの?
6Be名無しさん:05/03/01 19:42:04
時期が時期なだけに
冬を越せるといいね
OS作るの難しいしな
7Be名無しさん:05/03/07 22:16:53
Mona用スレ?
8Be名無しさん:05/03/08 22:01:07
>Mona用スレ?
いや、ソレとは別物。
最近、作ってる人、出てこないけど、どうにかなったかな…?
9Be名無しさん:05/03/11 14:18:41
同種スレ乱立してるしなあ。
10Be名無しさん:05/03/12 00:22:55
C言語でブートセクタを作って見たけど、ほんとに何も出来ない。
ディスクから次のコードを読み出してジャンプ。
それだけで、512byteになったよ。
11Be名無しさん:05/03/12 13:23:57
ブートセクタが第二セクタを読み出し、第二セクタが第三セクタを読み出せば、何でも出来る。
12Be名無しさん:05/03/12 13:31:10
the spoon microkernel
http://www.djm.co.za/spoon/
13Be名無しさん:05/03/14 11:12:19
組み込み用の簡単なOSでも作ろうかと参考資料探してたんだけど、

ttp://homepage3.nifty.com/ryuz/hos/

これって何かの冗談ですか?
いや、内容はともかく、名前が。
14Be名無しさん:05/03/14 14:50:23
H8用OSだから
15Be名無しさん:05/03/14 15:03:22
はなわと卑下が脳内でダブるのはどうして?
16Be名無しさん:05/03/14 17:39:02
>>14
うっそーん、「Hyper Operating System」て書いてありますやん。

てか、このスレも書くと反応あるのね。
17Be名無しさん:05/03/14 17:58:54
胡散臭い厨
Hideyoshi Mist Zakky あっきぃ ベイサイド
18 ◆YLWgTxgTPw :05/03/14 18:29:32
一体何が胡散臭いのだろう。
19Be名無しさん:05/03/14 21:14:52
20Be名無しさん:05/03/18 13:24:54
Sphinx C--ってどうなの?
サンプルを見る限り結構よさげだけど…。
マニュアルが厨房には辛い…。
21Be名無しさん:2005/03/24(木) 15:36:40
このスレで暴れている厨がうざいから
クローズで開発していると思われる
22Be名無しさん:2005/04/05(火) 09:17:42
ブートストラップからCのプログラムを読みこむところまでは出来たんだけど
同じ手順でC++のプログラムをリンクしようと

$ c++ -c kernel.cpp
$ ld --oformat binary -o kernel.bin -Ttext 0x7e00 -e start kernel.o
kernel.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'

こんなエラーが出るんですが何をリンクしてやればいいんでしょうか?
2322:2005/04/05(火) 11:26:48
すまん解決。
とにかくいろいろオプション付けたら通った。
どれで解決したのかは分からん。

$ g++ -nostdlib -fno-exceptions -fno-rtti -fno-builtin -c kernel.cpp
$ ld -n -static -o kernel.bin -Ttext 0x7e00 -e start kernel.o
24Be名無しさん:2005/04/17(日) 00:33:24
http://pc8.2ch.net/test/read.cgi/os/1030080751/
ここの>101っていい事言ってるな。あたらしいOS作るならOpenSolarisにOPENSTEP APIをくっつけたら結構使えるぞ。Solarisもようやくオープンソースになるからな。SolarisのカーネルにOpenstepの開発環境、NeXTの復活か?

http://opensolaris.org/
http://gnustep.org/
25Be名無しさん:2005/04/17(日) 00:40:54
>>24
ふむ、Mac OS Xとの互換性をソースコードのレベルではもてるな。
実現したらおもしろい...。
26Be名無しさん:2005/04/17(日) 22:29:09
MacもMacOSXもいらないので、
WindowsでMacOSX用アプリが動くようにしてくれ。
27Be名無しさん:2005/04/17(日) 23:39:26
>>26
Windowsの方がいらない。
どうせならunix系でマックのアプリ動かしてほしい。
>>24が言ってるような物だったら無理でもないな。しかしマックはmach-oバイナリーだからどうだろう。どっちみちPPCでないと無理だな。
28Be名無しさん:2005/04/19(火) 09:56:59
OS(土台)としては、Windowsはあまり良くないんでは・・・。
unix系(BSDとLinux)のOSでWindowsやMacOSXのアプリが動くほうがイイ!。
MacOSXはDarwin(BSD系)だが。

MONA OS がんばれ。ついでに MoXも・・・
29Be名無しさん:2005/04/19(火) 23:48:39
>>28
その土台としてBSDやLinuxよりSolarisが (・∀・)イイ!!
って流れなのでは?
30Be名無しさん:2005/04/20(水) 11:29:13
>>29
そうだな。実際にOpenSolarisがでてからの話だけど。
OpenSolarisになったらLinuxのようにコミニュティーのサポートも増えるし(ドライバーなども増える)。で、今のソラリスより軽くなるだろうな(サンの所有管理ソフトはオープンしないだろうから)。そうなったらいい土台になるよ。

>>28
悪いけどMONA OSは将来が無いでしょ。だいたいカーネルをC++で書いちゃうってこと自体おかしい。ま、でも頑張って欲しいのが正直な気持ち。
31Be名無しさん:2005/04/20(水) 19:20:00
>>27
SoftPearってのがある。
完成すればMac OS XアプリがPC版のLinuxやDarwinで動くようになる
予定。まだコンソールアプリしか動かないけど。

http://www.softpear.org/

32Be名無しさん:2005/04/20(水) 19:26:56
>>30
L4の実装の1つとかC++で書かれたカーネルもあるから技術力次第だと思うが...
33Be名無しさん:2005/04/20(水) 21:53:28
>>32
それでそのL4/C++はオリジナルより性能良くなったの?駄目駄目になったん
じゃないの...
34Be名無しさん:2005/04/20(水) 22:48:12
>>33
性能的にどうなったかはワカラナイ。
私はC++は嫌いですが、それなりの人が書けばC++でも物になると思うけどなぁ。
35Be名無しさん:2005/04/21(木) 08:09:34
C++をCとして使う分には性能は落ちないけど、
まともにオブジェクトやテンプレート使うと
確実に遅くなるよ。
36Be名無しさん:2005/04/21(木) 10:28:31
CとC++は(LispとかJavaにくらべ)言語仕様の根本が非常に近いし、
CPUがCとC++で処理速度を変えるという話は聞いたことがないので、C/C++は等速であるのが基本。
それをたかがオブジェクト=構造体使ったくらいで遅くなるというのであれば技術的根拠を示すのが筋。
テンプレートに至ってはコンパイル時に特殊化されインライン展開までされるから、STLとかは普通の自作クラスより速いよ。
37Be名無しさん:2005/04/21(木) 11:29:11
>>36
今は知らんけど、昔は最適化弱かった。
virtual使えばVMT引くのに時間がかかるし。まともにオブジェクト使うってーのはそういうことでないの?
#つうかなぜにLispとJava…

まあ、今まともに動くCPUなら気にする程のオーバーヘッドにならんと思いますが。
どーしても遅かったらがんばってCで書き直せばいいことだし。
38Be名無しさん:2005/04/21(木) 15:36:35
仮想関数テーブル方式で多態すると分岐予測失敗しまくり
39Be名無しさん:2005/04/21(木) 16:54:35
Cと比べてC++は、遅いし、サイズは妙にでかくなり、バグを沢山抱えこむ。

これが定説では?
40Be名無しさん:2005/04/21(木) 18:53:50
>>39
それが定説なら、C++は世の中から消滅しているはずだが。
なぜC++が色々な場面で使われているのだろうか?
41Be名無しさん:2005/04/21(木) 19:56:04
>>40
>なぜC++が色々な場面で使われているのだろうか?

たとえばどこで使われてるの?
42Be名無しさん:2005/04/21(木) 20:31:48
>>41
プログラム作成経験はお有りでしょうか?
43Be名無しさん:2005/04/21(木) 20:40:05
>>42
ええ
44Be名無しさん:2005/04/21(木) 22:18:22
>>37
同じ機能をCでやろうとすればやっぱり同じだけか、余計に遅くなるだろ。
Cで書き直すというのも訳が分からん話で、速度が必要なとこだけをC"スタイル"で書けばいいだけ。

>>39
実装系によってはランタイムライブラリがでかいというのはあるね。
バグをたくさん抱え込むのはC++に振り回されてるからじゃん。
遅いということに疑問を投げてるのだから、「遅いのは定説」というのは思考停止。
45Be名無しさん:2005/04/22(金) 07:27:26
C++をbetterなCにすぎないものとして使ってる人は多い
46Be名無しさん:2005/04/22(金) 20:17:19
速度やバイナリーの大きさの問題もあるがライブラリーの依存性も問題。ライブラリーがかわったらアプリをコンパイルし直さないといけないからな。

個人的にはCのオブジェクト指向言語としてはobjcの方が全然いいと思う。
47Be名無しさん:2005/04/22(金) 21:40:25
>>40
C++が使われている色々な場面のレビューまだ?
48Be名無しさん:2005/04/22(金) 21:45:22
C++を使うとバグまみれなソフトができるのは、低脳が書くものだけだという事実を受け入れよう
49Be名無しさん:2005/04/22(金) 23:11:24
えらい。
よく自分を見つめてるな。
50Be名無しさん:2005/04/26(火) 12:34:46
ttp://japan.cnet.com/news/ent/story/0,2000047623,20083118,00.htm

> 一方、開発者に対し定期的な調査を行っているEvans Dataの調査結果は、
>C++が再び勢いを盛り返しているというStroustrupの主張と矛盾する。Evans
>Dataの調べでは、C++を利用している開発者の割合は過去6年間にわたって縮
>小を続けており、1998年春に76%だったものが、2004年秋には 46%へと落ち
>込んでいることが判明した。だが今後数年間は、C++利用率の減少が「大幅に
>鈍化する」だろうと、Evans Dataは予測している。
51Be名無しさん:2005/04/26(火) 16:24:21
俺もちょっと手をだしてみよう
52Be名無しさん:2005/04/28(木) 22:09:46
誰も見てないのかな
53Be名無しさん:2005/04/30(土) 21:59:59
Mona OSの最新バージョンは、何ですか?
ダウンロードサーバ教えてください。ファイルがいっぱいあってよくわかんない orz
54Be名無しさん:2005/04/30(土) 22:06:58
俺はワカゾーなんですが、Mona OSの開発に協力したいです。
でも、C++分からないので、もしこのOSが GUIがあったら
アイコン作りなどしたいです。

どうか貢献させて下さい。おながいします。
55Be名無しさん:2005/04/30(土) 22:39:46
>>53 >>54
ここはMonaスレじゃないから、続きはこっちでやれや

OSを作ろうpart12 Mona専用
http://pc8.2ch.net/test/read.cgi/os/1114611721/l50
56Be名無しさん:2005/05/01(日) 00:43:30
書き込みがあったと思ったらこれか
57Be名無しさん:2005/05/01(日) 07:43:43
>>55 >>56
スマソ...orz
間違えて、スレ違いでした。まぎらわしい....
逝って来ます。【しかもageてしまった】
58Be名無しさん:2005/05/04(水) 17:59:55
自作OSがqemu上でなら正常に動作するんだけど
実機だと画面の真ん中あたりより下へグラフィックを表示出来ない・・・
なんか心当たりない?
59Be名無しさん:2005/05/04(水) 18:54:24
実機はDOSの使用を考慮しなくなった辺りから、ハードウェア
スクロールが変(DOS/Vのディスプレイドライバ組みこみ時に
/hs=off 付けないと画面ぐちゃぐちゃになる)なことが多いけど
それ…か??
60Be名無しさん:2005/05/04(水) 21:35:44
mona.conf
かなんかを編集して解像度を決めておかないといけないんじゃなかったっけ
61Be名無しさん:2005/05/05(木) 10:05:28
>>58
ハードウェアのスクロール機能は使ってないはずなんだけどなぁ。
>>59
自作OSっすよ。
6261:2005/05/05(木) 10:09:32
うわレス番号一つずつずれてるorz
63Be名無しさん:2005/05/07(土) 11:35:23
OS自作するときってドライバとか各製品ごとに
作ってやんなきゃいけないの?
Ethernetボード(っていうのか?)のドライバ作りたいんだけど
なにか統一された規格かなんかありませんでしょうか?
64Be名無しさん:2005/05/07(土) 11:43:18
>>63
NDISドライバを書いてWindows用のドライバを流用するのが現実的
6563:2005/05/07(土) 12:07:04
>>64
そんなに大変なのか...
アリガト。
66Be名無しさん:2005/05/07(土) 12:55:50
そんなに大変じゃない
PICでNICドライバ書いてる人もいる
67Be名無しさん:2005/05/07(土) 15:55:38
>>64
それは最後の手段でないかと。

6863:2005/05/07(土) 16:27:36
>>66-67
ぬ、そうなのか?

てか質問に対する回答がまだ得られてないのですが。
「OS自作するときってドライバとか各製品ごとに
作ってやんなきゃいけないの? 」

教えてプリーズ
69Be名無しさん:2005/05/07(土) 17:48:31
>>68
ものすごく基本的な事なので、本気で作るつもりなら
人に聞く前に自分で調べれ。

まあEtherの統一規格言ったらNDISくらいしか残ってないのう…
漏れはODIの方が好きだったんだが。
70Be名無しさん:2005/05/07(土) 17:53:12
>>68
ものによる。

ところで、ドライバとかの「とか」ってなんだ?
7163:2005/05/07(土) 18:11:30
>>69
ありがとうございました。
とりあえずNDISについて調べてみます。

>>70
ネットワークに接続するためのドライバです。
72Be名無しさん:2005/05/07(土) 18:59:27
>>71
なるほど。

ネットワークと一口でいっても、古典的にはSLIPとかあるし
定番のイーサとか、いわゆる無線LANとか、Air EDGEで
プロバイダに繋がりゃいい、なんてのもアリだろうしね。
無線といえばアマチュア無線なんてのもあるしな。

「とか」はそういうプロトコル部分を意識してるのかとオモタ。
73Be名無しさん:2005/05/10(火) 00:59:05
最近OSを作ろうと思ってる工房なんですが、
とりあえずFDブートのHelloWorldが出来ました。
で、疑問に思ったんですが、あれってブートセクタはファイルとしては
現れませんよね?でも他のファイルをきちんとFDに書き込める。
ディスクの管理というかなんというか、
そこら辺どうなってるんでしょうか?
74Be名無しさん:2005/05/10(火) 01:09:33
ttp://pd32d4c.tokynt01.ap.so-net.ne.jp/
wwwwwwwwwwwwwうはっwうぇwwwwww
おkうぇおkwwwwwwwwwwwwwwwっwwwwwwwwwwww
っwwwwwwwwwwwww
うぇうぇwうはっおkおkおkうぇうはっwwwうはっ
おk
75Be名無しさん:2005/05/10(火) 01:45:21
>>73
FCB
76Be名無しさん:2005/05/10(火) 01:49:21
>>73
BPB (BIOS Parameter Block)
DPB (Device Parameter Block)
77Be名無しさん:2005/05/10(火) 02:55:35
http://pddcc2d.tkyoac00.ap.so-net.ne.jp/
wwwwwwっうぇっ
wwwwwwwwwwwwwっ
wwwwwwwwwwwwwwwwww
wwwwww
うはっwwwwwwおkwwwうぇwwwっうぇっ
78Be名無しさん:2005/05/10(火) 02:59:58
http://ntgnma039180.gnma.nt.adsl.ppp.infoweb.ne.jp/
wwwwwwっうぇ
wwwwwwwwwwwwwww
wwwwwwおkwwwおkwwwうはっwwwっっうぇ
おkwwwwwwwwwwwwwwwwwwっ

79Be名無しさん:2005/05/10(火) 03:15:54
http://i219-167-238-123.s02.a006.ap.plala.or.jp/
うはっwwwっうぇwwwwwwっうぇwwwwwwwwwwww
おkwwwうぇwwwおkwwwwwwwwwwwwwww
っうぇwwwwwwwwwwwwwwwwww
80Be名無しさん:2005/05/10(火) 05:24:17
http://p25203-adsau07doujib1-acca.osaka.ocn.ne.jp/
wwwwwwwwおkwwwっうぇwwwwwwwwwwwww
うぇwwwwwwwwwwwwwwwおkwww
っwwwwwwwwwwwwwwwwwwwww
81Be名無しさん:2005/05/10(火) 05:50:12
http://pl070.nas931.nara.nttpc.ne.jp/
wwwwwwwうぇwwwっwwwwwwっうぇwwww
っうぇっ
wwwwwwwwwっおkwwwっwww
wおkwwwっうぇうはっwwwうはっwwwっうぇ
82Be名無しさん:2005/05/10(火) 06:54:17
http://218.33.211.112.eo.eaccess.ne.jp/
wwww

うはっwwwwwwwwwwwwwwwうはっwww
wwwっうぇうはっwww
wwwwww
うはっwwwおkwwwっうぇっっうぇwwwwww
83名無しさん@Linuxザウルス:2005/05/11(水) 10:20:27
俺もOS作りたいと思ってるんだけどよくわからなくて、、、
そしたらMONAって本みつけたんでそれ読んでMONA OSの開発を手伝おうかと思ったけど
それだとなんだかおもしろくないのでMONA OSとは
また違うOSを最初から作りたいなって思っているわけです

そこで皆さんのちからを借りたいなと思った訳ですよ

んでブートローダーをアセンブラで書かないといけないようなのですがどのように書けばいいのか
わからないので誰か教えてください

84Be名無しさん:2005/05/11(水) 10:58:48
>>83
Mona本に載ってる2chの過去ログの部分がまさにその説明だからまずは嫁

OSをつくろうpart2
http://pc3.2ch.net/tech/kako/1024/10244/1024411711.html

OSをつくろうpart3
http://pc3.2ch.net/tech/kako/1027/10270/1027080631.html

つか本当に初心者なら遠回りかもしれんがまずMonaを手伝ってみて
技を盗んでからやった方が長い目で見れば近道だと思うぞ
ブートした後のこととかのイメージがつかめるからな
85名無しさん@Linuxザウルス:2005/05/11(水) 11:22:15
>>84
こんなに早く回答してくださってありがとうございます。
まず過去ログ読んでみます
多分、分からないことだらけなので
その時はまたおねがいします
86Be名無しさん:2005/05/11(水) 20:40:00
>>75-76
返信遅れてすいません。書き込み直後に寝てしまったもので・・・
あー、OS作るのってむずい
想像以上に自分が何も知らないことを痛感中です
87Be名無しさん:2005/05/12(木) 01:37:45
>>80
その日記みたいなレスを書く前にコードの一行でも書いたらどうだね
88Be名無しさん:2005/05/12(木) 08:50:45
>>87
それコードからの書き込みだから
89Be名無しさん:2005/05/13(金) 01:50:49
ついに人間とロボットが会話を楽しむ時代がやって来たのですね!
9086:2005/05/13(金) 16:12:17
FDブートのHelloWorldが作れたので、それを改造して
文字列を表示する関数を作ろうとしたんですが、意味不明な文字化けが起こって
うまく表示されません。
どなたかアドバイスしてくださったら幸いです。
以下にソース張ります(動くやつと動かないやつ
環境はGCCです
9186:2005/05/13(金) 16:12:47
/* 動くやつ */

.code16
.text

.global _start
_start:
movb$0x03, %ah
xorb%bh, %bh
int $0x10

movw$message, %bp
movw$0x07c0, %ax
movw%ax, %es
movw$12, %cx
movb$0x13, %ah
movb$1, %al
movb$0x07, %bl
int$0x10
ret

hang:
jmphang

message:
.ascii "Hello World!"

.org 510
boot_flag:.word 0xaa55
9286:2005/05/13(金) 16:16:54
/* 文字化けするやつ */

.code16
.text

.global _start
_start:
movw$0x07c0, %ax
movw%ax, %ss
pushw$12
pushw$0x07c0
pushw$message
callprint
9386:2005/05/13(金) 16:17:16
/* 続き */
/* この関数は最初にbpの値、次にesの値、最後に文字列の長さをpopします */
print:
movb$0x03, %ah
xorb%bh, %bh
int $0x10

popw%bp
popw%ax
movw%ax, %es
popw%cx
movb$0x13, %ah
movb$1, %al
movb$0x07, %bl
int$0x10
ret

hang:
jmphang

message:
.ascii "Hello World!"

.org 510
boot_flag:.word 0xaa55
9486:2005/05/13(金) 16:18:08
tabが消えてる。。。orz
95Be名無しさん:2005/05/13(金) 16:47:52
>>90
なんというか…基礎がなってない。
アセンブラのニーモニック覚えただけで完璧とか思ってないかい?


96Be名無しさん:2005/05/13(金) 17:11:38
誰も完璧だなんて思ってないでしょ……。
わからんからアドバイス求めてるわけで。
9786:2005/05/13(金) 20:18:02
>>95
うっ。。。手厳しいですね。
正直アセンブリはgccの-Sオプションの出力とかLinuxの
ソースとかを見たことがあるだけなのでまだいまいちわかってないです。
どこを改善したらいいでしょうか?
98Be名無しさん:2005/05/13(金) 21:14:17
95じゃないが、

・call命令は内部で次のアドレスをpushする
・ret命令は内部でスタックからpopして
 それをアドレスとみなして飛ぶ

で、push〜popとcall〜retを無造作に混ぜたらどうなるか想像してみ。
9986:2005/05/13(金) 21:41:12
>>98
あっ!そうか
callのときに積んだEIPの値をBPにpopしちゃってるってことですね。
じゃあさっそくその部分を修正してみます。
アドバイスありがとうございました!
10095:2005/05/13(金) 22:55:47
>>99
も一個。
printをそこに置いちゃまずいだろう。

とりあえず、アセンブラの基礎の本一冊読んでおいたほうがいいよ。x86じゃなくていいから。
あと、アセンブラのコード読みまくれ。コンパイラが吐いたのじゃなくて、人間が書いたの。
10186:2005/05/13(金) 23:23:23
>>100
なるほど。。。
では本とかソースとか読み漁ってから出直してきます。
ソースって何かお勧めなのありますか?
102Be名無しさん:2005/05/14(土) 01:04:36
出来ないなりに適度に作ってしまいつつ。というのが面白いよ多分。
読み漁りまくるのは、ある程度、その道に踏み外してからのが良いような気がする。

面白いためにやるんであって、読み漁るためにやるわけではないだろうから。
103Be名無しさん:2005/05/14(土) 01:06:28
104鳥取砂丘 ◆GXX0p3qNcg :2005/05/14(土) 08:48:16
参考にならんやろ(´・ω・`)
10586:2005/05/14(土) 15:36:07
とりあえずmonaの最初のリリースとか読んでみることにします。

もうすぐ中間テストだ。。。orz
10686:2005/05/14(土) 16:04:09
出来ました!
実際昨日の夜ぐらいにはもう書きあがってたっぽいんですが、
.bochsrcの記述ミスのおかげで一日中悩んでました。なんてアホな。。。

.code16
.text

.global _start
_start:
movw$0x9000, %ax
movw%ax, %ss
movw$0xa000, %sp
pushw$12
pushw$0x07c0
pushw$message
callprint

jmphang
10786:2005/05/14(土) 16:04:44
続き

print:
addw$2, %sp

movb$0x03, %ah
xorb%bh, %bh
int $0x10

popw%bp
popw%ax
movw%ax, %es
popw%cx
movb$0x13, %ah
movb$1, %al
movb$0x07, %bl
int$0x10

subw$8, %sp
ret

hang:
jmphang

message:
.ascii "Hello World!"

.org 510
boot_flag:.word 0xaa55
10886:2005/05/14(土) 16:06:12
ギコナビで書き込んでるんですが、なぜかタブが消えてしまいます。
見苦しくってすいません
109Be名無しさん:2005/05/14(土) 16:16:02
>>106-107
それだと、運悪く割り込み入ったらあぼーんしますが。

まずは、スタックの使われかた覚えましょうね。OSを書く場合避けて通れない所だから。
110Be名無しさん:2005/05/14(土) 16:21:16
どんなブラウザで書いたってタブは消えるって。
タブを全角スペース二個分くらいに置換して書き込むといいよ

UNIX MAGAZINE COLLECTIONの「Linuxのブートプロセスをみる」って本とかいいぞ
がんがれよ
111109:2005/05/14(土) 16:21:22
あ、int使ってるからその時点でダメですな。
11286:2005/05/14(土) 16:27:24
>>109
うーむ。まだ問題があるのですか。
先は長そうだなぁ。。。

でも、初めてCでHelloWorldやったときよりも
感動は大きいです
11386:2005/05/14(土) 16:30:39
>>110
そうだったんですか。実は2chに書き込むのも
今回が初めてなので知りませんでした。

応援ありがとうございます。がんがります!
114Be名無しさん:2005/05/14(土) 17:00:45
NASMでは.386みたいな命令はどう書けばいいのですか?
115Be名無しさん:2005/05/14(土) 20:43:03
別にスタックに拘らなくても、レジスタに余裕あるならレジスタで
渡したほうが楽だと思うが >パラメーター
116Be名無しさん:2005/05/15(日) 01:58:15
Cとくっつける時にはスタックから引数を拾う技術が必要だからなあ。
覚えておいて損はしないだろう。
117Be名無しさん:2005/05/15(日) 02:30:22
EM64TではR8〜を使うけどね
118Be名無しさん:2005/05/15(日) 12:41:36
OSのテストやらでqemuのディスクイメージにファイル書き込むのに、
DiskExplorerみたいのじゃなくてコマンドライン系ツール無いのかな?
何度も繰り返し書き込むわけだから、makefileに書き足してコンパイルと
同時に書きこめりゃ便利なのに。

>114
ttp://www.yuasa.kuis.kyoto-u.ac.jp/~nobu/study/nasm/chap5.html
ttp://ivs.cs.uni-magdeburg.de/bs/lehre/sose99/bs1/nasm/nasmdoc5.html

BITS 16とBITS 32しか指定できない…かも。
119Be名無しさん:2005/05/15(日) 13:56:09
>>118
mtools とかは?
FAT系のみ対応かつ日本語ファイル名等はおかしくなりそうだけど。
120118:2005/05/15(日) 17:08:42
>119
thx。
ちとぐぐった感じだとwin上で使うための情報はあんまし
出てこなくて手強そうだけど、も少し調べてみる。
121Be名無しさん:2005/05/15(日) 17:28:47
ファイルシステムの勉強を兼ねて、そういうのを作ってしまうというのも
一つの手ではないかと。
122Be名無しさん:2005/05/15(日) 17:33:34
>>120
Monaじゃfat_writeって自前ツール使ってMakefileで自動的に書いてる
fat_writeはMonaのソースに入ってるから一度コンパイルしてみそ
12386:2005/05/15(日) 19:01:07
LinuxとかMonaのブートセクタを読んでみたんですが、
なぜかどっちもブートセクタ開始時に別のアドレスに
自身を転送しています。
これって何か意味があるのでしょうか?特にないような気がするんですが。。。
124118:2005/05/15(日) 19:57:41
そう言やFAT12ならブートセクタ自前で書かずにファイル名を
IO.SYSにしてDOSのブートセクタに読んでもらう手も有るな。
実機で試す時はrawriteとか使わずにコピーするだけで済むから
ユーザ側も楽かも。
まあ結局qemu用のイメージ配布するようになると同じ動作のやつ
書かないと駄目だけど。

>121
無けりゃ自分で作ろうかなとは思った。
読み込みは作ったこと有り(susieプラグだけど)。

>122
thx。MonaADKにバイナリも入ってるけどまたcygwin用か…。
にしてもosdev-jに書いてないツールが次々出てくるな。書き足してきた。
125Be名無しさん:2005/05/15(日) 20:21:20
>>124
単にMonaADKは湾岸の趣味だからfat_write自体はCygwinに依存してるわけじゃない
MonaADKじゃなくてソース取ってきて自分でコンパイルすればCygwinがなくても動く
126Be名無しさん:2005/05/15(日) 20:32:23
勉強目的ならFATもいいけどLinux系のファイルシステムもいいかもね。
127Be名無しさん:2005/05/15(日) 20:56:42
>>124
XPで普通にフロッピーをフォーマットしたら、ntldrの先頭64kBばかりを読み
込むブートセクタになっちゃうかと(しかも連続して配置されているとの
決め打ちで)。
MS-DOS 6.2とWin95系は、同じくIO.SYSを読み込むもののIO.SYSのエントリ
仕様は異なったはずだし、IO.SYS全部をブートセクタが読み込むわけでは
なかったと思う。
128Be名無しさん:2005/05/15(日) 21:24:32
>>126
extかext2の仕様もってこい
129Be名無しさん:2005/05/15(日) 22:25:54
>>123
Linuxはその後カーネル読むときに邪魔だから。

>>128
ttp://www.linux.or.jp/JF/JFdocs/Filesystems-HOWTO.html
とか。
13086:2005/05/15(日) 22:58:21
>>129
なるほど。そういう意味があったんですね。
それで僕も意味もわからずにその部分を真似してみたんですが、
マシンによって結果が変わる、という状態になってしまいました。
手元に今実機が2台あるんですが、一台では正常に表示されて、
もう一台では無限にHelloWorldで、Bochsでは正常に表示されます。
以下にそのソース張ります。
どなたか原因わかりますでしょうか?

BOOTSEG = 0x07c0
STARTSEG = 0x200

.code16
.text

.global start
start:
movw $BOOTSEG, %ax
movw %ax, %ds
movw $STARTSEG, %ax
movw %ax, %es
xorw %si, %si
xorw %di, %di
movw $512, %cx
cld
rep
movsb
ljmp $STARTSEG, $secondstart

13186:2005/05/15(日) 22:59:21
secondstart:
movw $0, %ax
movw %ax, %ss
movw $0xa0000, %sp
pushw $12
pushw %es
pushw $message
call print
jmp hang

print:
addw $2, %sp # escape ip
movb $0x03, %ah
xorb %bh, %bh
int $0x10
popw %bp # third parameter
popw %ax # second parameter
movw %ax, %es # set es
popw %cx # first parameter
movb $0x13, %ah
movb $1, %al
movb $0x07, %bl
int $0x10
subw $8, %sp # push ip
ret

hang:
jmp hang
132Be名無しさん:2005/05/15(日) 23:04:49
どうでもいいけど>>86って内容ぴったりのハンドルだね
133Be名無しさん:2005/05/15(日) 23:32:42
>>130
スタックの使い方がアレですね。
正常だと思っているものも恐らくhang:以外のところでフリーズしている
か暴走しているか、予想外のコードを実行した後でたまたまhang:のところ
にたどり着いているのではないかと。
int命令もスタックを使うという事で。
13486:2005/05/16(月) 01:13:44
>>132
本当は73で最初に発言したんですけど
僕も86が気に入ったんで使ってます。

>>133
int命令って一応レジスタ退避して復元しませんでしたっけ?(自身ないです
っていうかマシンごとに動作に差があるのが変なんですよね。
BIOSの中身の問題なんでしょうか。
だとするともはや手がつけられない。。。

っていうかもうすぐ中間テストだぁぁあせdfgyふじこlp;
まじで勉強やヴぁいのでテスト終わるまでの1週間ほどPC封印しようと思います。。。
というわけで皆さん1週間後ぐらいにまたよろしくおながいします。。。

# あー、生きて戻ってこれるかな
135Be名無しさん:2005/05/16(月) 01:26:02
>>134
朝7時から夜11時まで勉強汁よ。
136Be名無しさん:2005/05/16(月) 02:09:05
>>134
そのレジスタをどこに退避しているかという話になる訳だが。

だからあれほど本を読めと…
137Be名無しさん:2005/05/16(月) 03:27:37
>>134
ヒント:スタック

まぁ、アセンブラ経験値が上がればプロシージャに入った直後にスタック
ポインタ値を増加させるという事は死んでもしなくなるとは思うが…。
138Be名無しさん:2005/05/16(月) 09:06:02
>>136-137
多分本のどこを読めばいいのかすら分からないと思うよ

>>134
スタックの手動トレースしてみる

print:
SP[IP][3][2][1]

addw $2, %sp # escape ip
[IP]SP[3][2][1]

これ退避じゃなくて放棄

基本的にスタックの左側にある値は保護されない
スタックの左側にあるということは外に晒すようなイメージ
この場合int割り込みを掛けたときに
そのときのIPがpushされるから
その瞬間退避したと思った[IP]が破壊される

定石としてはサブルーチンの最初で
movw %sp,%bp
とでもしといて
movw [%bp+4],%ax
のようなことをして引数を取得する
139128:2005/05/16(月) 19:10:02
>>129よ、ありがとう
140Be名無しさん:2005/05/16(月) 20:42:41
Linuxのカーネルのソースを読んでるがインラインアセンブラに書いてあることが理解できん
141Be名無しさん:2005/05/16(月) 21:00:17
>>140
最初はGNU GRUBから読むと良いのではないか。
142Be名無しさん:2005/05/16(月) 21:09:55
>>141
だが今俺はkernel1.0のfs以下のソースを読んでるのだが。
それに俺はGASの文法がわからなくてな
143Be名無しさん:2005/05/17(火) 13:54:16
>>141
それは止めた方がいいのではないかと。

>>142
なぜにそんな古いものを…

IntelとAT&Tの大きい違いは
・オペランドの順番が逆。
・命令の最後にオペレーションサイズが付いてる。
位だろう。
慣れればなんて事は無いでつ。
144142:2005/05/17(火) 17:13:19
>>143
オペランドが逆だったんだ、納得
145Be名無しさん:2005/05/17(火) 19:15:03
>>144
AT&Tシンタックスの概要はここでも見るとよいです
ttp://www.tldp.org/HOWTO/Assembly-HOWTO/gas.html#AEN345
146Be名無しさん:2005/05/18(水) 20:39:59
今雑誌コーナーに並んでるテックアイがオペレーティング・システム入門だった
ブートストラップ以降に必要になるであろう知識が書いてあるっぽかった
147Be名無しさん:2005/05/19(木) 00:16:51
>>146
あんまし関係ない。
無駄って程でもないので、金に余裕があるなら買ってもいいんでは。

ざっと見ただけなので、大事な事を見落としているかもしれんが。
148Be名無しさん:2005/05/19(木) 00:26:53
gasの文法なら、↓に "gas i386 Assembly Language Guide (.ppt)" があるよ。
ttp://www.cs.umb.edu/~bobw/CS241/
149Be名無しさん:2005/05/19(木) 00:50:25
>>148
OOoで見れた。
150Be名無しさん:2005/05/27(金) 01:15:17
86は撃沈か。
151Be名無しさん:2005/05/27(金) 11:01:19
そういえば戻ってこないな。

いきなりブートローダーに手を出して挫折か…
まあ何事も勉強だ。
152Be名無しさん:2005/05/27(金) 13:01:12
以前、Interfaceの特集でC言語でブートローダを作ってた。
あれを参考にすれば?
多少、インラインアセンブラを使用するが。
153Be名無しさん:2005/05/27(金) 13:24:41
>>152
あれもアセンブラでごりごり書ける位じゃないと厳しい。
ああいう世界ではホントにC=高級アセンブラだから。

ブートローダーなんてものは枝葉だから、そんな所でつまって
本題に入れないつーのはもったいないと思うけどねえ。

まあ、そのへんさくさく作れないレベルで先に進んでも、
同じようにはまるだけという気もしますが。
15486:2005/05/27(金) 16:25:06
>>150-151
いや、まだ撃沈してないっす(テストは撃沈
とりあえず皆さんからのアドバイスを元に、ちゃんと動く
print関数を実装できました。
今ブートセクタから第2段階のローダー(?をロードしようとしてます。

ところで、まだまだ先の話なんですが、マイクロカーネルって
OSの機能が分断されて別々のプロセスとして働くんですよね?
Monaとかでもファイルシステム担当のサーバがあるっぽいんですが、
そのファイルシステムを担当するサーバを実行させるために
サーバをディスクから読み出すためにはどうするんでしょうか?

やはり最低限必要な機能はカーネルに入れるとか?
15586:2005/05/27(金) 16:43:09
ちなみにこれがprintの完成版です。

/* first parameter --- bp register's value */
/* second parameter --- string length */
/* third parameter --- es register's value */
print:
movw %sp, %bp

movb $0x03, %ah
xorb %bh, %bh
int $0x10

movw 2(%bp), %ax # third parameter
movw %ax, %es
movw 4(%bp), %cx # second parameter
movw 6(%bp), %bp # first parameter
movb $0x13, %ah
movb $1, %al
movb $0x07, %bl
int $0x10

ret
156Be名無しさん:2005/05/27(金) 16:52:32
>>154
Monaは0.3.4以降とそれ以前では全然違うんだが、
とりあえず0.3.4以降の最新版について説明すると、
firstbootから呼び出されたsecondbootで
カーネルと各種サーバーと設定ファイルを読み込んでる。
だからカーネルにはファイルI/Oは入っていない。

とりあえずMonaをCVSからダウンロードして確認してみれば?
そうすればMona見れば分かるようなことでいちいち悩まなくていいわけだし。

注意点として、Monaのsecondboot.asmはC#をコンパイルしたコードなので、
secondboot.asmを直接読もうとしても撃沈する。
tools/IL2ASM16/secondbootにあるC#のコードを参照のこと。
簡潔に書いてあるので何やってるかすぐ分かると思う。
157156:2005/05/27(金) 16:55:42
適当に書いたらミスってたので訂正スマソ

×0.3.4
○0.3.0α4

×tools/IL2ASM16/secondboot
○tools/MonaNET16/SecondBoot
158Be名無しさん:2005/05/27(金) 18:10:10
分裂症のOS
15986:2005/05/27(金) 19:21:37
なるほど。
C#はおろかC++の経験すらないんですが、大体の流れなら
わかるものなんでしょうか?

とりあえず読んでみます
160Be名無しさん:2005/05/28(土) 12:31:23
>>155
サブルーチン中で、スタック操作"しない"なら、
sp を bp に退避せず直接 movw 2(%sp), %ax とかでいーんじゃね?

と思ったら、138のアドバイスね。
161Be名無しさん:2005/05/28(土) 12:43:38
>>160
> movw 2(%sp), %ax
8086の命令セットでは記述できない
162Be名無しさん:2005/05/28(土) 19:45:19
あ、あれ。mov eax, [esp+4] とか書くのと同じノリだった。
163Be名無しさん:2005/05/28(土) 20:11:11
>>162
Windows使ってるならDOS窓でdebugコマンド使って確認できる。

C:\>debug
-a
3528:0100 mov ax,[bp+2]
3528:0103 mov ax,[sp+2]
^ エラー
3528:0103
-q
164Be名無しさん:2005/05/28(土) 23:31:17
>>161
でも、386以降限定としてしまえば、リアルモードでも67Hを使えば
32bitアドレッシングモードが使えるよ(64kを突き破らないように注意
がいるけど)
165Be名無しさん:2005/05/28(土) 23:42:40
>>164
出来るのは分かるけど初心者に教えるのに適したことではないよね。
今回は初心者からの相談なわけだから。
166Be名無しさん:2005/05/28(土) 23:45:58
>>164
ところでx86-64限定として、リアルモードから64bitアドレッシングモードが
使えるようなプレフィックス命令はあるのかなあ?
WOW64の32bitプロセス限定でRAXとかを使う裏技はあるらしいけど。
167Be名無しさん:2005/05/30(月) 00:00:11
MINIXのソースを読んでるのだがLinuxと違ってわかりやすいな。
168Be名無しさん:2005/06/18(土) 16:03:09
VRAMって今もメインメモリと共用なの?それとももう専用のRAM使ってるの?
169Be名無しさん:2005/06/18(土) 16:40:30
>>168
オンボードのやつはいまだにメインメモリと共用のがあるけど(VIAとかSISとか)、
単体でAGPに挿すやつは独自に持ってるのが普通。
前者はマザーボードに512MB積んでもOSからは480MBとかに見えて減るので分かる。
170Be名無しさん:2005/06/18(土) 17:05:00
とりあえずVGAが刺さってたら専用なんだ
171Be名無しさん:2005/06/29(水) 14:05:57
172Be名無しさん:2005/06/29(水) 18:06:42
スマソ。質問です。
軽い気持ちで、ブートローダーを作っていたのですが、
起動したときに、ちゃんと読み込まれない模様。(OSの入ってるディスクを入れてほかのキーをタイプして下さいみたいなメッセージが出る。)
//コンパイル・・・nasm -f bin -o 1stboot.bin 1stboot.asm
//ddコマンドを使ってどうとかこうとか・・・dd if=1stboot.bin of=1stboot.img bs=512 count=1
↓から1stboot.asmのソース
;--------------------------------------
; Name :Macro PRINTSTR
; Spetial Thanks:higepon
;--------------------------------------
%macro PRINTSTR 1
mov si, %1
%%ByOS:
lodsb
cmp al, 0
je %%end
mov ah, 0Eh
mov bh, 0
int 10h
jmp %%ByOS
%%end
%endmacro
173Be名無しさん:2005/06/29(水) 18:08:00
;--------------------------------------------------
; Name :1stboot.asm
; Spetial Thanks:higepon
;--------------------------------------------------
[ORG 0]
BITS 16

; cs = 07Coh
jmp 07C0h:start
osStart db 'Starting ByOS...', 0dh, 0ah, 00h
resetOk db 'disk reset ok', 0dh, 0ah, 00h


start:
cli
mov ax, cs
mov ds, ax
mov ss, ax
sti
PRINTSTR osStart

174Be名無しさん:2005/06/29(水) 18:08:42
reset:
mov ax, 0
mov dl, 0
int 13h
jc reset
PRINTSTR resetOk


forever:
jmp forever
times 510-($-$$) db 0
dw 0AA55h

ここまで。
コンパイル等のときにエラーは出てない模様。
お願いします。
175Be名無しさん:2005/06/29(水) 18:35:40
dd if=1stboot.bin of=1stboot.img bs=512 count=0
じゃないか?
176Be名無しさん:2005/06/29(水) 20:35:18
>>172-174
シグネチャがちゃんと書けてないんでは?

ついでにすげーどうでもいい事だが、コメントのスペルが間違ってる。

>>175
count=0じゃ書き込まれないような気がするな。

177Be名無しさん:2005/06/29(水) 20:39:16
seek=0 count=1 だね
178172-174:2005/06/30(木) 14:33:17
>>175-177ありがとうございます。
しかし、依然としてブートローダーを読んでくれません。
>>176シグネチャとは?
179Be名無しさん:2005/06/30(木) 23:39:00
>>171
何がしたいのかわからんな
180Be名無しさん:2005/07/01(金) 01:57:03
>>178
最後の2byte。
BIOSがブートセクタの中身チェックするのはそこしか無いはず。

ディスクエディタか何かで、ちゃんと予定通りの配置になってるか
確認するのがいいのでは無いかと。
181Be名無しさん:2005/07/01(金) 03:10:01
作ったOSの試運転に使ってた古マシンが壊れちゃった...
182172-174:2005/07/03(日) 16:52:58
>>180ありがとうございます。
最後の2byteはダンプでF6 F6となっておりました。
配置を直しましたが、エクスプローラーで見れなくなりました。(フォーマットしますか?とかいうメッセージが出てくる。)
これは仕様でしょうか?(´・ω・`)
183Be名無しさん:2005/07/03(日) 21:48:06
>>182
FATつぶしたとか。
184Be名無しさん:2005/07/05(火) 00:33:47
あーあ
185172-174:2005/07/05(火) 14:23:49
>>183ありがとうございます。
再フォーマットしてコピー後、再起動したら別のメッセージがヽ(゚∀゚)ノ
・・・・同じ意味でしたorz
186Be名無しさん:2005/07/06(水) 20:38:01
>>172
お前の作ったブートローダーには
「OSの入ってるディスクを入れてほかのキーをタイプして下さいみたいなメッセージ」
なんていう文字列なんかどこにもないだろ?

っつーことは、BIOSか、既存の他のブートローダーが実行されている。

187Be名無しさん:2005/07/07(木) 02:08:58
>>172にはBPBがないようなので、OSがFATとして認識することはありません。
FAT12として認識させたいならブートローダの中にBPBデータを含めておく必要があります。

FAT12で再フォーマットをするとBPBはOSによって書き込まれますが、
当然自作プログラムも消えて、起動可能でもなくなりますので、>>185となります。

OS開発であれば、最初に作成する起動可能フロッピーはFAT12にする必要はまったくないので、
BPBのことは考えず、Winなどで読み込み可能にすることも考えない方がよいと思います。
そのときは、>>182のようになるのは誤動作ではありません。
たしかにFAT12互換にしておくと利便性はありますが、それの追求は後でよいと思われます。
188Be名無しさん:2005/07/07(木) 06:50:55
BPBはこの辺が参考になるかと。
http://community.osdev.info/index.php?IPL
189172-174:2005/07/07(木) 14:56:45
>>186FDに入ってるブートローダーだと思います。
>>187
> Winなどで読み込み可能にすることも考えない方がよいと思います。
> そのときは、>>182のようになるのは誤動作ではありません。
> たしかにFAT12互換にしておくと利便性はありますが、それの追求は後でよいと思われます。
ありがとうございます。
>>182の時はFDDで起動させても何も表示されず、ただ白いアンダーラインが表示されるだけでした。
とりあえず現段階(再フォーマット・ddコマンドでコピー済)のFDDのダンプを張らせていただきます
ttp://20a.mata-ri.tk/src/20M0540.txt.html
パスはOSです。
190187:2005/07/07(木) 16:40:31
>>189
他人に丸投げで(しかもダンプを)デバッグをさせるという姿勢は理解できません。ので見てもいません。
>>180さんおっしゃるように、最後の2バイトが正しければブートローダとして読み込まれてしまいます。

シグネチャが正しいのに動作しないのであれば、あとは単にプログラムのミスです。
実際、アンダーラインの表示で応答が無くなるのは、単に暴走しているからでしょう。
191Be名無しさん:2005/07/07(木) 16:57:00
>>189
落とせねえよ… orz
192Be名無しさん:2005/07/08(金) 19:09:31
そろそろ開発終了かな
193172-174:2005/07/09(土) 07:18:16
>>190あまったれてすみませんでした。
それと報告が有ります。
バイナリエディタでfirstbootの部分をコピー -> ディスクイメージに貼り付けをしたら、上手く表示されました。
しかし、FATが潰されてる模様orz
FATを潰さずに以上の作業が出来る方法は有りますか?(この作業でなくても構いませんが・・・)
有れば教えてください。
194Be名無しさん:2005/07/09(土) 08:12:47
マルチメディア総合技術研究所という団体が製品情報で新しいOSを出すとか。
http://www.mulchmedia.info/index.htm
なんか怪しい。
会員から会費を取るらしい。
PSPでリナックスを動かしたとかゲームボーイ用ソフトを動かしたとか書いている。
195Be名無しさん:2005/07/09(土) 17:05:44
>>193
FATのBPBについて調べてみれ
196Be名無しさん:2005/07/10(日) 00:31:58
197172-174:2005/07/10(日) 15:23:47
今、EOTAのソースを閲覧してるのですが、Eota/boot/1st/Makefileにある
dd if=a.out of=1stboot_hd bs=32 skip=1 count=16 2>/dev/null
を改造して
dd if=1stboot.bin of=1stboot.img bs=32 skip=1 count=16
にしてみようと思っています。
それと、2>/dev/null
     ~~~~~~~~~~~~
     この部分は何を示しているのでしょうか?
198Be名無しさん:2005/07/10(日) 15:31:56
>>197
標準エラー出力を黙らせている。
199Be名無しさん:2005/07/10(日) 15:32:36
エラー出力をニフラムするの。それくらい自分で調べないとお先真っ暗よ。
200199:2005/07/10(日) 15:33:55
かぶってごめんなさい。さよおなら。
201Be名無しさん:2005/07/10(日) 15:37:28
>>200
キリ番ゲットおめ!
202172-174:2005/07/10(日) 15:43:14
>>198-199ありがとうございます。
今、>>197を試してみましたが>>185と同じメッセージが出ただけでした(´・ω・`)ショボーン
やはりBPBを改造しないと無理っぽいです。>>FATを潰さずに(りゃ
Monaの1stbootの先頭部分でBPBの設定をしてるじゃないですか。そっからパクってみたんですけど、結果的に同じっぽいです。
バイナリで直接入力しかないのでしょうか?
203Be名無しさん:2005/07/10(日) 15:55:13
>>202
逆にMonaの1stbootを削って自分のコードをつなげてみな。
204Be名無しさん:2005/07/10(日) 16:27:50
>>202
スキップしてずらしてんだからあたりまえ。
自分のやってることが分かってないで、
闇雲に真似てるだけの駄目人間だな。
205172-174:2005/07/10(日) 16:50:00
>>203
どの辺から削るべきでしょうか?やはりディスクリセットが終わったあとからでしょうか?
206Be名無しさん:2005/07/10(日) 16:52:56
>>205
そんなもん自分で考えろ
分からなかったら削るんじゃなくて改造していじってみろ
自分でコード書くのはそれからだ
207Be名無しさん:2005/07/10(日) 23:56:01
ヲマエみたいの毎年出てくるな。もうそんな季節ですなぁ。
ヲマエに悪気がないならしばらくここで聞くのやめれ。
うるせカンケーネーヲレの勝手だヴォケってんならご自由に。
199さんや206さんがなんで怒ってるのかよく考えてみろ。
間違っても仕切り屋が煽りくれてるんじゃねーぞ。
ヲマエの質問文にゃなにひとつ自分で努力した跡がねーのよ。
自分がもしこんなふうになにからなにまで教えて君されたら
ムカツクだろ?悪いこといわんからすこし間を空けて自分で
いろいろ試行錯誤してもういっかい質問してみれ。
208Be名無しさん:2005/07/11(月) 01:39:41
>207
ヒゲ
209Be名無しさん:2005/07/12(火) 22:31:51
話を変えてみる。

フリー用のPC用トロンを実装するという試みはかつてあったのでしょうか?
(2ch初心者なんで、過去ログを全て把握してないですごめんなさい。)

仕様が無料で公開されてて作れるはずなのに、作ってる人がいないなあと思ったので、
ちょっとここで聞いたりしてみました。まあ、仕様と実装は別物ですから、
ないのも当然なのかなあとちょっぴりしょぼくれたりしていました。
210Be名無しさん:2005/07/12(火) 22:50:15
211209:2005/07/12(火) 23:41:43
>210
ありがっとお。こんなにあったんだ。
知らなかった。今度よく調べてみます。
うーむ。トロン流行ってほしいなあ。
212Be名無しさん:2005/07/13(水) 00:10:16
【ありがとう】橋本真也 追悼オフ【破壊王】
http://off3.2ch.net/test/read.cgi/offevent/1121074170/
みんなで破壊王を見送りましょう。
葬儀日程
通夜:7月15日(金)18時
葬儀:7月16日(土)12時30分
場所:一休庵久保山式場 神奈川県横浜市西区元久保町3-13
最寄駅:京浜急行線 黄金町 駐車場:15台(全館貸切の場合、30台)

横浜駅西口から久保山斎場まではタクシーでは
所要時間10分〜15分、料金は1,220円〜1,380円です。

1,220円は混雑を加味しない料金です。
3〜5分程度の混雑を考えた場合、1,380円位になると思います。
(実際は1分55秒で80円加算です)
バスは
京急黄金町駅から32系統久保山経由保土ヶ谷車庫行き →久保山霊堂前
横浜駅西口からは4番乗り場68系統久保山経由滝頭行き→久保山で下車してください。
なお、久保山バス停からはかなりの上り坂です。
213Be名無しさん:2005/07/15(金) 20:06:33
ひげぽんさんにとって,もはやココは邪魔なだけ。さっさとスレ消費しちまおう。
214Be名無しさん:2005/07/15(金) 20:09:04
OSを作ろうスレはどうなるんですか?
215Be名無しさん:2005/07/15(金) 20:30:49
>>213
このスレはもはや卑下と関係ないから。

>>214
卑下と関係ないOSを作るためのスレ(ここ)は現状維持だろうね。

卑下スレはすぐ埋め立てられる状況では建てても仕方ないね。
2ch発祥って事実には影響ないから未来永劫2chベースである必要はない。
実際、かなり前からら卑下自身スレにはほとんど顔出してなかった。
スレなしでblogとWikだけでもまったく支障ないんじゃね?
216Be名無しさん:2005/07/15(金) 20:42:13
巣立ちみたいなもんですな
217Be名無しさん:2005/07/15(金) 21:01:57
>>214
【クロスプラットフォーム】BayGUIを語るスレッド【Mona】を立てて進行してください
218Be名無しさん:2005/07/15(金) 21:09:19
卑下が来なくてもMonaを語れるスレッドを。
219Be名無しさん:2005/07/15(金) 21:19:56
Wikiへ逝けってことだろうな。。。
220Be名無しさん:2005/07/15(金) 21:56:14
しかし、議論する場所が無いつーのは不便な気がするな。
俺OSの道を突き進むからそんな場所はいらねーつうことか。

221Be名無しさん:2005/07/15(金) 23:01:58
>>220
何を今更(w
ここ1年スレでまともな議論なんか皆無だったじゃん
222Be名無しさん:2005/07/15(金) 23:29:26
どうでもいい議論ならあったような気もするが…

まあ漏れはこの先も生温かく見守るだけだな。
wikiとか日記コメントで議論する気になれん。

223Be名無しさん:2005/07/16(土) 01:22:13
卑下はこの事態をどう責任とるつもりなんだ?
224Be名無しさん:2005/07/16(土) 08:14:14
ume
225Be名無しさん:2005/07/16(土) 09:29:23
>>214-223
ここ蓑輪と無関係だから、続きはこっちでやれや。

総合雑談スレ
http://pc8.2ch.net/test/read.cgi/os/1088075755/l50
226Be名無しさん:2005/07/16(土) 22:21:28
うめ
227Be名無しさん:2005/07/19(火) 00:10:01
プロテクトモードに移行した後に、A20を有効にしようと思って
void enable_A20(void)
{
while(inb(0x64)&2)
;
outb(0x64, 0xd1);
while(inb(0x64)&2)
;
outb(0x60, 0xdf);
while(inb(0x64)&2)
;
outb(0x64, 0xff);
while(inb(0x64)&2)
;
}
という関数を呼び出したのですがBochsがCPU_LOOP 1というメッセージを
延々と吐いて何もしなくなります。
初めて読む486からまるごと移してきたので自分でも何をやっているのか
よく分からないのですが、どうしたらよいでしょうか?
inb,outbは以下の通りです
byte __inline__ inb(long port)
{
byte ret;
asm volatile ("inb %%dx, %%al": "=a" (ret) : "d" (port));
return ret;
}
void __inline__ outb(long port, byte value)
{
asm volatile ("outb %%al, %%dx": :"a" (value), "d" (port));
}
228Be名無しさん:2005/07/19(火) 00:19:51
>>227
Monaにはこんな風に書いてある
ttp://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/MonaNew/core/secondboot/A20.cs
public class A20
{
  public static void Enable()
  {
    Wait();
    IO.Out(0x64, 0xd1);
    Wait();
    IO.Out(0x60, 0xdf);
    Wait();
    IO.Out(0x64, 0xff);
  }

  public static void Wait()
  {
    while ((IO.In(0x64) & 0x02) != 0);
  }
}
229Be名無しさん:2005/07/19(火) 00:22:01
>>227>>228はまったく同じなんだけど、Monaはリアルモード。
230Be名無しさん:2005/07/19(火) 00:23:48
あ、もう一点違うね。
最後にウェイトしてない。
231227:2005/07/19(火) 00:30:36
>>229
>>228さん、ありがとうございました。
>>228さんの提示してくれたソースっぽくwhile()の中身を書き換えたら
まともに動くようになったんですけど、>>227を呼び出している状況では
確実にプロテクトモードなんです。
とりあえずのIDTRとGDTRを設定して、cr0の最上位ビットを1にしたら
プロテクトモードには移行できてるんですよね?
なにか違いはあるんでしょうか?
232Be名無しさん:2005/07/19(火) 00:32:01
233227:2005/07/19(火) 00:57:21
できたと思ったら何故か再びできなくなりました。。。
trace-onにしてしばらく追っかけてたら一応enable_A20は呼び出されているんですが、
それから突然CPU_LOOP状態になります。
このCPU_LOOP 1ってなんなんでしょうか?
234Be名無しさん:2005/07/19(火) 01:26:24
>>233
文字通り無限ループということではないでしょうか?
while()の書式はあまり関係ないでしょう。
最後のwait()を取るとどうなりますか?

参考までにFreeBSDのソース(gas)も出しておきます。
ttp://www.freebsd.org/cgi/cvsweb.cgi/src/sys/boot/i386/boot2/boot1.S

プロテクトモードでフルに32bitアドレッシングをするためのものなので、
リアルモードでやっておくのが定石みたいです。

ちなみに昔のFreeBSDではプロテクトモードでやっていたみたいです。
ttp://www.freebsd.org/cgi/cvsweb.cgi/src/sys/i386/boot/biosboot/Attic/io.c
void gateA20(void)
{
  while (inb(K_STATUS) & K_IBUF_FUL);
  while (inb(K_STATUS) & K_OBUF_FUL)
    (void)inb(K_RDWR);
  outb(K_CMD, KC_CMD_WOUT);
  while (inb(K_STATUS) & K_IBUF_FUL);
  outb(K_RDWR, KB_A20);
  while (inb(K_STATUS) & K_IBUF_FUL);
}
235227:2005/07/19(火) 01:40:43
>>234さん、ありがとうございます!
とりあえずリアルモード中にFreeBSDのソースを張ったらできました!
とりあえず今日は眠いので明日吟味してみようと思います。。。
ところでこれのチェック方ってありますか?
236Be名無しさん:2005/07/19(火) 02:03:55
>>235
ちょっとは調べてみてくださいね。
ttp://database.sarang.net/study/OS/os-faq-memory.html

要するに20bit以上のメモリアクセスを可能にするということです。
20bitということはつまり1MBということです。

これをやらないといくらプロテクトモードでも
[00000]〜[fffff]までしかアクセスできません。
[100000]の値を見れば、アドレスがマスクされて、
[00000]を指していることが分かるはずです。

実はリアルモードでもチェックできます。
A20が有効なら[ffff:0010]が[100000]を指すはずです。
237鳥取砂丘 ◆GXX0p3qNcg :2005/07/19(火) 02:10:41
A20制御ってリアルモードのうちにやっといて
プロテクトモード移行前にA20有効かどうかチェックするのが定石だよね
238Be名無しさん:2005/07/19(火) 07:49:10
この手の奴アセンブラ以外で書かれると、かえってワケワカランな…
239Be名無しさん:2005/07/19(火) 09:45:11
cliしてないだけだったりして<無限ループ
240Be名無しさん:2005/07/19(火) 11:28:32
>>236
> 実はリアルモードでもチェックできます。
> A20が有効なら[ffff:0010]が[100000]を指すはずです。
HMAってやつですな
241Be名無しさん:2005/07/19(火) 11:31:56
>>239
できたりできなかったりってとこがそれっぽいね
242Be名無しさん:2005/07/19(火) 11:49:02
HMAについてはこの辺が参考になるかと
ttp://www.wdic.org/?word=HMA+%3ATECH
ttp://yougo.ascii24.com/gh/04/000419.html

A20周りは互換性とか過去の遺物を引きずった結果だから
この辺の情報はDOS関連が多いね
243Be名無しさん:2005/07/19(火) 12:26:23
liloとかminixのブートローダのソースを読むのもいいかも
244Be名無しさん:2005/07/19(火) 12:43:06
>>243
LILOのソースを見た上で言っていますか?
LILOでA20はいじっていません。
というか汎用IPLでそんなとこをいじったらまずいわけです。
MINIXうんぬんは、LILOと比較する部分ではないですね。
245Be名無しさん:2005/07/19(火) 13:52:22
ブートローダのソースはGRUBを読むのが一番いいです。
ブートローダを一から作るよりGRUBに精通して改良して使うのがいいです。
246Be名無しさん:2005/07/19(火) 13:53:23
A20の話をしてたんだと思うんだけど。
247Be名無しさん:2005/07/19(火) 13:58:13
>>245
HDDに複数のOSを入れてマルチブートする段階になったら
そんなの自作するのはOS開発の本質から外れるから
汎用のブートローダを使った方が良いだろうけど、
勉強のためFDから起動してみる最初歩の段階では
リアルモードとかBIOSとかの勉強が目的なわけだから
GRUBをいじるとかは方向性が違うと思う。
248Be名無しさん:2005/07/19(火) 14:06:02
BIOSにA20制御なかったっけ?
INT 15hの拡張ファンクションあたりにあったような気がするんだが。
249Be名無しさん:2005/07/19(火) 14:27:27
>>248
ありますね。

ttp://www.win.tue.nl/~aeb/linux/kbd/A20.html
> INT 15 AX=2400 disable A20
> INT 15 AX=2401 enable A20
> INT 15 AX=2402 query status A20
> INT 15 AX=2403 query A20 support (kbd or port 92)
250Be名無しさん:2005/07/20(水) 19:05:17
qemu上で開発したいんだけど、どうしたらqemu用のブートイメージを作れるんだろう…?
251Be名無しさん:2005/07/20(水) 19:07:21
>>250
make installで生成される通常のブートイメージがそのまま使えますよ。
$ qemu -localtime -cdrom bin/mona.iso
252Be名無しさん:2005/07/20(水) 19:09:05
>>251
それMona?
ここはMonaのスレではない。
>>250は自作OS開発のことを言ってるみたいだけど。
253251:2005/07/20(水) 19:13:33
スマソ。最近の動向ヲチしてなかった。
254Be名無しさん:2005/07/20(水) 20:17:08
>>250
FD作って、それ吸ってイメージにする。
効率悪いけど。

#そのへん調べられない状態で手を付けて、
#うまくいくのかかなり疑問であるが…
255Be名無しさん:2005/07/20(水) 22:48:21
ところでなんでOSASKやらMONAはFAT12ぐらいしかファイルシステムをサポートしてないのだろう?
256Be名無しさん:2005/07/20(水) 22:52:28
>>255
MonaはNTFSも実装中ですよ
257Be名無しさん:2005/07/20(水) 22:59:07
なんかMS一色だな。といってもMONAはISO9660も実装するんだっけ?
258Be名無しさん:2005/07/20(水) 23:08:29
簡単な上にどこでも読み書きできるからの〜
12bitの取り扱いがうざいけど。

>>257
もう入ってるんではないかと。
259Be名無しさん:2005/07/21(木) 21:02:41
ブートセクタから次のローダを読み込んで実行すると、何故かCPU_LOOP1でbochsが
無限ループにはまります。
原因を調べてみた所、Cで書いた関数内でGDTを設定しようとしている所に問題が
あるようなのですが、どうしてもわかりません。
そのCの関数が
int cstart(void)
{
/* set 0th gdt */
setsegdesc(0, 0, 0, 0, 0);

/* set gdt for setup */

setsegdesc(0x8, 0x20200, 0x1000, typeCODE, smallseg, DPL_0);
setsegdesc(0x10, 0x20200, 0x1000, typeDATA, smallseg, DPL_0);
setsegdesc(0x18, 0x10000, 0xfff, typeSTACK, smallseg, DPL_0);

return 0;
}
260Be名無しさん:2005/07/21(木) 21:04:47
後は別のファイルに
void makesegdesc(segdesc *desc,
long addr, long limit,
byte segtype, byte seg32type,
byte dpl)
{
desc->baseL = (word)(addr & 0xffff);
desc->baseM = (byte) ((addr >> 16) & 0xff);
desc->baseH = (byte) ((addr >> 24) & 0xff);
desc->limitL = (word) (limit & 0xffff);
desc->limitH = (byte) ((limit >> 16) & 0x0f) + seg32type;
desc->type = segtype | (dpl << 5);
}

void setsegdesc(word sel,
long addr, long limit,
byte segtype, byte seg32type,
byte dpl)
{
makesegdesc(&gdt[sel>>3], addr, limit, segtype, seg32type, dpl);
}
この関数を定義しています。
デバッグしてみた所、
(0) [0x0002029e] 2020:009e (unk. ctxt): call far c700:0000 ; 9a000000c7
<bochs:876>
CPU_LOOP 1
Error: (0) print_guard_results: guard_found ? (stop reason 0)
Next at t=739471
こういうメッセージをずっと吐き続けます。
どなたかアドバイスお願いします。
261259:2005/07/21(木) 21:07:01

setsegdesc(0, 0, 0, 0, 0);
この部分だけだとエラーは起こりません。
というか、2バイト以上の値を扱うと同じようなエラーになるっぽいです。
return 0xffff;とかでも同じエラーが起こります。
262Be名無しさん:2005/07/21(木) 21:20:36
call far c700:0000

そもそもこれが正しいとは思えないんだが。
263259:2005/07/21(木) 22:03:59
>>262
はい。このバイナリは0x20200からおかれているので
それが明らかにおかしいです。
でも何でコンパイルした結果そんなバイナリが出て来るのかが謎です。
何かパラメータとの問題があるんでしょうか。。。
264Be名無しさん:2005/07/21(木) 23:13:29
コンパイル結果を逆汗して、併せてBochsで追えばいいじゃん。
それで分かんないってのならCで組むのを諦めた方がいいよ。
265Be名無しさん:2005/07/22(金) 14:51:33
コンパイラにアセンブリのソースを出力させて意図通りか確認するとか
266Be名無しさん:2005/07/23(土) 01:00:58
確認できるスキルがあればとっくにやってんジャマイカ
267Be名無しさん:2005/07/23(土) 16:39:19
CPUの機能を操作しようと思うならアセンブリくらい知っておいた方が…
268Be名無しさん:2005/07/24(日) 21:31:01
意図してもいないのに90x60文字モードになってしまう。。。
269Be名無しさん:2005/07/24(日) 21:33:01
おっと80x50文字モードだった・・・ orz
270Be名無しさん:2005/08/04(木) 11:29:30
ここに触発されてDOSを書きはじめました。
(マルチタスクのフルOSは面倒くさいのでDOSです)
ようやくFAT12のMBRが書き終わり、カーネルを実装しようというところです。
素のDOSのように16ビットにするか、V86にして
カーネルを32ビットで書くかが悩ましいところ・・・
271Be名無しさん:2005/08/04(木) 14:55:47
>270
その意気やよし!
それでは甚だ僭越ながらおれが名前をつけてやろう。

「OS/2ch」

でどうや。
272Be名無しさん:2005/08/05(金) 03:36:51
マルチタスクもないのに OS/2 もどきとは如何に
273Be名無しさん:2005/08/05(金) 14:21:50
2ch-DOSはどう?
274270:2005/08/06(土) 18:11:37
ドラクエの名前入力から先に進まない身としては、
OSの名称は悩ましいですね。
とりあえずコードネームはつけてありますが、
名前は後でかえるかもしれません。
作っているもの自体は公開していませんが、進捗は
以下においていきます。

ttp://hovweb.hp.infoseek.co.jp/

EMSとかの余計なAPIが増えそうな予感がしますが、
カーネルを32ビットにすればgccが使えそうということで、
とりあえずV86を調べています。
275Be名無しさん:2005/08/07(日) 12:31:31
>>274
拝見しました。
ディスク読み書きにBIOS使ってるけど、ブート中だけだよね?
BIOS使わないDOSになる予定なんだよね?
276Be名無しさん:2005/08/07(日) 16:38:24
BIOS使うに決まってるだろ
277270 ◆stwSgIY65Q :2005/08/07(日) 22:11:49
>>275
今のところ、ディスクアクセス自体はv86に切り替えて
BIOSを呼び出すつもりです。
ファイルシステムドライバは32bitで書きます。
278Be名無しさん:2005/08/08(月) 10:07:49
>>274
なんか勝手に270-DOSって呼ばれてるよw
http://pc8.2ch.net/test/read.cgi/os/1121690722/62
279270 ◆stwSgIY65Q :2005/08/12(金) 21:21:23
>>278
270-DOSのほうがわかりやすいですねw

ディスクアクセスは、個人的にはBIOSを使うほうが
安全だとおもいます。
直接アクセスの場合、例えば
Serial ATA II以降のATA HDDでは
専用のアクセスコードを入れないと(つまりレガシATAコードでは)
動きませんが、BIOS経由であれば動くはずです。
280Be名無しさん:2005/08/12(金) 21:35:53
>>279
NWSOSでもV86でBIOS経由アクセスですね。
ただ将来的なことを考えるとV86は微妙です。
ロングモードからV86は扱えないからです。
AireOSではリアルモードのエミュレートで
ロングモードからBIOSコールを考えているみたいです。
281270 ◆stwSgIY65Q :2005/08/12(金) 22:07:07
>>280
AMD64でDOSやBIOSをエミュレートしたい場合は、CPU命令を
フルソフトエミュレートするか、レガシモードに一時的に
切り替えればできるとおもいます。
ただ今回の場合、V86が動かない環境だとDOSそのものの
存在意義がなくなりますので、あまり問題にならない気がします(^^;
282Be名無しさん:2005/08/12(金) 22:26:32
>>280の「リアルモードのエミュレート」は
>>281の「CPU命令をフルソフトエミュレート」と同じことを言っているかと。
283Be名無しさん:2005/08/12(金) 22:58:24
>>281
V86がなくてもプロセスもBIOSと同じエミュレートで動かせばいいのでは?
XP(64)では16bit環境が完全に切り捨てられたので、
MSですらやらないことを敢えてやるのはそれはそれで面白いかも。
284Be名無しさん:2005/08/13(土) 00:27:01
せっかくOSを作ろうという香具師が出てきたのに
今から64bitうんぬんでハードル高くして
つぶすのはどうかとおもうのだが
285Be名無しさん:2005/08/13(土) 00:42:39
>>284
こんなのは遅かれ早かれ言われることでしかない。
潰すと決め付けることこそどうかと思うのだが。

逆に、V86を避ける言い訳にロングモードを持ち出して、
ロングモード自体も時期尚早と片付けることで、
ハードルを下げようとした人も見たことあるよ。
286270 ◆stwSgIY65Q :2005/08/13(土) 08:51:35
>>282
リアルモードに戻すのかとおもいましたが、
いわれてみればそうみたいですね。

>>283
説明不足でした。ソフトエミュレートのコードがあれば、
64bitのカーネルからでもv86同様のエミュレートは
あまり難しくないと思います。
そのときはBIOSもエミュレータで動かせばよいと思いますので、
独自のディスクアクセスコードは書かなくてよいと思います。

XP64がDOSサポートを打ち切ったことで、
将来的にCPUからv86が削除される可能性は考えられます。
そのときは、Long mode 上でのエミュレートに切り替えないといけないでしょうね。
それを視野に入れると、アセンブラコードやアドレスキャスト等はカーネルに
あまり混入させないほうが良いことになります。

270-DOSでは動かす対象が16bitのDOSということで、
v86がハード的にサポートされていればv86を使いたいところです。
32bitモードでも64GB(PxE)までの物理メモリアクセスが可能であることを考えると、
現状ではメモリ拡張で得られる利点よりも速度ペナルティのほうが大きいと思います。

287280:2005/08/13(土) 10:43:21
>>286
素晴らしい。頑張ってください。
288270 ◆stwSgIY65Q :2005/08/15(月) 07:17:01
今までプロテクトモードに切り替えてv86でBIOSを
呼ぶ実験をしていました。
GP(0)の実装がいるために少し手間かかりますね。
ようやくv86の動作を確認できましたので、
32bitでのカーネル作りスタートです。
289Be名無しさん:2005/08/21(日) 17:51:41
静かになったな
290Be名無しさん:2005/08/25(木) 22:00:02
とりあえずサンプルを元にブートしてhelloworldまではできたどー
さてどうやってカーネルまで行こう…
遠いなぁ
291Be名無しさん:2005/08/25(木) 22:06:40
夏の終わりにこの程度だと今年は何もないね。
292270 ◆stwSgIY65Q :2005/08/28(日) 23:09:18
FATドライバのうちファイル読み込み部分を
クロス開発で書きました。
カーネルからファイルが読めるようにするには、
これとディスク読み込みとバッファ管理が必要でしょう。
地道な作業ですね。
293Be名無しさん:2005/08/28(日) 23:23:09
270-DOS期待しております。

DR-DOSもEnhanced DR-DOS Projectが進んでおりDOSが再認識されている
のもありますが、DOSはやはりOSを勉強する上で一番まったりしていてよろしい
ですから
294Be名無しさん:2005/08/30(火) 00:48:29
test
295Be名無しさん:2005/08/30(火) 00:59:52
初歩的な事ですが教えてください。

現在、IPLからローダ(16Bit Code)を読み込みカーネルを読み込むコードを作成しています。
カーネルは640Mb未満に読み込むのが良いのか1Mb以上の領域に読み込んだ方が良いのか
悩んでいます。
将来的には仮想86モードをサポートしたいと思っていますがメモリーレイアウトか?です。
カーネルを作成する場合はカーネルを何処に読み込んだらシステムとして最適なのでしょうか?
296Be名無しさん:2005/08/30(火) 07:22:00
>>295
悩むならとりあえずWindowsと同じにしておけば?
297Be名無しさん:2005/08/30(火) 10:36:51
>>295
悩むなら下の方でいいんでないの?
全部読んでから正しい場所にまとめて転送すりゃいいんだし。
上の方はプロテクトモード経由になるからちとめんどいぞ。

で、最終的には100000hあたりに転がしておけばいいんではないかと。
カーネルが640Kを越えない自信があるなら、下の方にそのままでもいいと思うが。
298295:2005/08/30(火) 23:50:53
>>296
2G or 3G にカーネルを読み込むって事ですね。

>>297
確かに面倒なんですよね。
でも、コーディングが下手なんですぐ640KB超えそうです。

100000hあたりですか…、もう少し検討してみます。

皆さん有難う御座いました。m(_|_)m
299Be名無しさん:2005/09/01(木) 00:03:05
リアルモードで1M以上のメモリに読み込むには
HIMEM.SYSが使っているINT 15h/AH=87hが使えるよ
300Be名無しさん:2005/09/01(木) 11:43:00
>>299
それサイズの制限があるから、いまいち効率が悪いんだよなあ。

そういえば、segment limitいじってリアルモードから32bitアドレスを
扱うなんて技があったような記憶が。
301鳥取砂丘 ◆GXX0p3qNcg :2005/09/01(木) 11:54:31
302鳥取砂丘 ◆GXX0p3qNcg :2005/09/01(木) 11:58:00
<昔話>
プロテクトモードの技術が未熟だった頃は良くお世話になってたよ・・・

ちなみにMEGOSのリアルモードで32bitアプリ云々ってのはコアになる技術が
このUnreal modeと某仮想マシンだったりするのよね(´・ω・`)
</昔話>
303Be名無しさん:2005/09/01(木) 21:04:51
きんもぉーっ☆
304Be名無しさん:2005/09/02(金) 20:33:25
Unreal modeってほぼ全命令にprefixつくから
仮想86の使い方さえ覚えてしまえば
あまり使う価値なさそうだね
305Be名無しさん:2005/09/03(土) 00:40:21
prefixつけるunlong modeとかないの?
306Be名無しさん:2005/09/03(土) 16:44:35
>>305
64ビットモードにはprefixで16ビットアドレス指定する方法はなかったはず
307306:2005/09/03(土) 16:45:38
org
16ビットモードにはprefixで64ビットアドレス指定する方法はなかったはず
308306:2005/09/03(土) 16:46:55
orz..
そういえば、最近話題のハードウェアエミュレータは
16ビットのエミュレーションついているのでしょうか?
309295:2005/09/03(土) 23:47:17
>>299>>301 のテクニックを使用しているような気がします。
unreal mode はセットアップでは使える技術の様なので研究してみます。

>>304
32Bitのプログラムが使えないって事ですか?
16Bit CODE から unreal mode に移行後、32Bit CODEで動く気がするんですが?
310Be名無しさん:2005/09/03(土) 23:56:59
>>309

>>299はunreal modeではなくて普通にprotected modeに切り替えるもの
real に戻るのが面倒くさかった286時代につくられた
real -> protected -> メモリコピー -> realに戻る
を自動的にやってくれるBIOSコール
A20ラインも勝手にいじるはず
当然386以上でも動く

unreal modeの場合、普通はコード・スタックの
デフォルトモードは16bitにして必要なときだけprefixつける
デフォルト32bitにすることも可能なのかもしれんが、
少なくともその状態ではBIOSは呼べない

311309:2005/09/04(日) 10:51:28
>>310
分かりやすい説明で理解できました。
312270 ◆stwSgIY65Q :2005/09/05(月) 21:51:04
v86経由でディスクアクセスができるようになりました。
次はバッファ管理です。地道・・
313Be名無しさん:2005/09/05(月) 23:01:41
>>312
> v86経由でディスクアクセスができるようになりました。
Monaが避けて通っているところを真っ先に実装したのは興味深い。
だからどうだってことはまったくないのだけど。
314Be名無しさん:2005/09/06(火) 19:15:13
270DOSで、MonoViewが動く夢を見たい
315Be名無しさん:2005/09/06(火) 23:32:02
こんにちは、OSを作りたいと思っているものです。
大学で受験したTOEICの結果はすさまじい物でした。

Score 225

目を疑いました、この様子でPOSIXを読めるのか心配です。
316Be名無しさん:2005/09/06(火) 23:51:29
MonoViewってWin用だとおもっていたのだがDOSで動くの?
317Be名無しさん:2005/09/09(金) 20:54:12
>>315
電子辞書を1つ買ってしばらく自力で読んでいれば
英語なんてそのうち苦にならなくなる
まあ、最初は全くわからんかもしれんが
318270 ◆stwSgIY65Q :2005/09/10(土) 16:59:59
ようやく.COMや.EXEが読み込めるようになりました。
以下はbochsでFreeDOS付属のCOMMAND.COM(EXE型実行ファイル)を
起動(COMMAND.COM /P)したときのスクリーンショットです。

ttp://nur.ath.cx/no0/pb/src/1126338408526.jpg

一応コマンドラインで入力できるところまではいきました。
まだFATへの書き込みが未実装だったり、
多数の未実装システムコールがあったりしますが、
多少はDOSに近づいてきた感じがします。

スクリーンショット中、時刻がおかしいのはダミーで0を返しているためです。
kernel panicを起こしているINT 21h/AX=6900hは
ボリュームラベル取得のシステムコールです。
319270 ◆stwSgIY65Q :2005/09/10(土) 17:02:52
>>313
対象がDOSで協調を考えなくて良いため、
v86への切り替えはおもったほど大変ではないです。
INTやHLT、IN/OUT系の命令をエミュレートして、
プロテクトモードの割り込みのうち必要なものを
リアルモードに返すようにすれば動くとおもいます。
320名無しさん@そうだ選挙に行こう:2005/09/11(日) 12:53:07
>>318
うおー、すげーーーーーー!!!
COMMAND.COMがEXE型ってのがよく分からないんだけど、
COMMAND.COMは0100hから展開する生バイナリじゃないってこと?
321名無しさん@そうだ選挙に行こう:2005/09/11(日) 15:33:21
>>318
未実装のシステムコールならエラーで戻ってもいいんでないかい。

>>320
64K越えたのでEXE形式にしたんでないかと。
322270 ◆stwSgIY65Q :2005/09/12(月) 21:39:23
>>320
FreeDOS用のcommand.comの中身は普通の.EXEのようです。
リロケーションまで実装しないと起動しませんでした。
オリジナルDOSのものはおそらく.COMなのだとおもいます。

>>321
確かにエラーで戻ればよいとおもいます。
ほとんどのDOSコールはAX=1、cflag=1として戻れば
問題は起こりません。(期待通りに動くかどうかは別として)
リリースする場合はそうなるでしょう。
現状では故意にkernel panicにしています。
kernel panicにすれば実装後まで動かないため、
実装のモチベーションが上がりますw
323Be名無しさん:2005/09/13(火) 11:35:34
>>322
昔は本当に.com形式ですた。

時代の流れとともに機能が追加されて肥大化した結果、
64Kの壁に突き当たってしまったので、EXEにして逃げたてな所でしょう。
#そういえばマルチセグメントCOM形式なんてのもあったような…

名前がCOMMAND.COMなのは互換性のためでせう。

などと昔話をしてみる。
324270 ◆stwSgIY65Q :2005/09/18(日) 23:55:11
今まで主にbochsで開発していたのですが、
実機で起動してみました。
ちゃんと起動して、コマンドプロンプトも出ました。
それは良いのですが、手抜きでセクタごとにINTを発行する
コードのせいでFDD読み込みが遅い問題が明らかに・・・
ディスクアクセスのチューニングが必要なようです。

>>323
FreeDOSの機能満載COMMAND.COMだからEXE型なのかと
おもっていました。
MS純正のCOMMAND.COMもEXEなのでしょうか。
325 ◆GXX0p3qNcg :2005/09/19(月) 00:01:54
DOS6までは純粋なCOM
DOS7以降はEXEだった気がするお
326270 ◆stwSgIY65Q :2005/09/19(月) 22:12:13
純正DOSもEXE型なのですね。
まあ、COMMAND.COMの中身がEXE型でも
困るアプリはおそらくないのでしょう。

各種拡張メモリの仕様を読んでみました。
XMS -> 実装は比較的簡単そう
EMS/UMB -> paging 実装すれば何とかなりそう
DPMI -> かなり大変そう、シングルタスクのフルカーネル書くのとあまり変わらない?
VCPI -> まあDPMIがあれば不要でしょう。カーネルが32bitだと実装は無理?

いずれにしても、膨大なプロテクトメモリを
どうやって管理するのが効率的かが課題なのでしょう。
リアルモード部分が完成したら、これを考えるところからですね。
327Be名無しさん:2005/09/19(月) 22:48:41
Linux上で動く仮想OSの開発とかってここではスレ違い?
328 ◆GXX0p3qNcg :2005/09/19(月) 23:22:18
EMM386とかはpagingで実装してるね

VCPI/DMPIはいろいろと微妙やねぇ
WINのDPMIホストはたしかサブセットだった気がする
329Be名無しさん:2005/09/19(月) 23:45:42
>>326
DPMIすか。
まあ実際にハード叩く部分はDOSが下請けになるので、多少楽だと思いますが。

>>328
サブセットつーか、Ver0.9準拠だったような。
何が違うのかは忘れた。
330 ◆GXX0p3qNcg :2005/09/19(月) 23:57:05
バージョンが違うんだったっけ
DOS起動中にEMM386とかのDPMIを使ってる常駐プログラムが
WINが起動するとDPMIのサポート範囲が変わって誤動作する事があるとかないとか
そんな話を聞いた事があるですよ
331 ◆GXX0p3qNcg :2005/09/19(月) 23:58:41
DPMIじゃなくてXMSの方だったかな・・・記憶が曖昧でつ(;´・ω・`)
332Be名無しさん:2005/09/20(火) 22:24:10
リアルモードでPOSIXに互換 or 近いようなOSって作れますか?
333Be名無しさん:2005/09/21(水) 00:38:25
>>332
elksとか。

334270 ◆stwSgIY65Q :2005/09/24(土) 18:55:11
DOS部分も全然完成していないのに
DPMIの実装を少しずつやっています。
メモリ管理はなんとかなるとしても、LDTの管理が面倒・・・

>>328
DPMI1.0の追加機能は2種類の例外処理、FPUエミュの
制御など、ないと困りそうなAPIが結構あります。
1.0は0.9の上位互換ですが、もしWinの起動などでDPMIが
1.0から0.9に落ちた場合、互換問題が出そうです。

>>329
ハード叩くコードを書く必要はありませんが、LDTを
フル活用する必要がありますね。
カーネルがプロテクトモードなのに、フック対策として
INT 21hは一度仮想86に戻さないといけないようです。
無駄の多いAPI群だなあ・・・

335270 ◆stwSgIY65Q :2005/09/24(土) 21:44:33
unsigned mem=dpmi_alloc_pmem(1024 * 1024);
int sel=dpmi_alloc_selector();
dpmi_set_selector_base(pldt,mem); // ベースは1M以上になる
dpmi_set_selector_limit(pldt,1024 * 1024);
mov ax,sel
mov ds,ax
mov es,ax
.(略)

こんなセレクタがDPMIのAPIに渡されるわけですね。
base が 0 以外で大変・・
336Be名無しさん:2005/09/28(水) 22:33:21
MEG-OS復活?
337Be名無しさん:2005/09/30(金) 21:07:02
これからOSを作ろうとしてて、それ用のPCを新調したいんですけど
余計な機能を満載したノートで開発はじめるとやっぱり大変なんでしょうか?
因に、VAIOのType Sが欲しいなぁと思ってるんですが
338Be名無しさん:2005/09/30(金) 23:42:03
>>337
基本的に自作OSを動かすのは古いPCのほうが良いよ
新しいPCだとレガシATAポートでHDDにアクセスが
できなかったりして大変
339Be名無しさん:2005/09/30(金) 23:45:17
ただし>>279のようにBIOSを使うなら問題なし
ディスクとビデオはBIOSでアクセスすれば
どの機種でやっても同じ結果になる
サウンドやネットワークはたぶんBIOSが提供されないので
ドライバを準備しないと使えない
340Be名無しさん:2005/09/30(金) 23:47:12
             い つ だ っ て
    ?/⌒ヽ?????                 ?/⌒ヽ????
    ( ^ω^)??? 秘技!糞スレの構え   ( ^ω^)???
   /  ? \ ???            ?   /  ? \ 
 ?⊂? )? ?ノ\つ?              ?⊂? )? ?ノ\つ? 
    (_⌒ヽ     ビシィィィィィィィイ  ?   (_⌒ヽ  
     ヽ ヘ } ???                 ヽ ヘ } ?
   ?  ノノ?`J ???               ?  ノノ?`J 

341Be名無しさん:2005/09/30(金) 23:50:28
とりあえずOS開発の初期段階はエミュでやれ。
これなら実機が何であろうと関係ない。
ま、エミュと言っても癖はあるがな。
QEMUをベースに、Bochs、VMWare、VPCのすべてで動けば、
当たり障りのない互換機では動くと考えて差し支えない。
342337:2005/10/01(土) 00:31:15
>>338,339,341
参考になりました。一応、ノート買っても大丈夫って事っすね。
最終ターゲット環境に近いスペックでしかも持ち運べる環境が欲しい、けど、
認識出来ないパーツがいっぱい付いてると不味いのかなぁ、デスクじゃないと不味いのかなと不安だったんです
ホントにありがとうございました。
343Be名無しさん:2005/10/01(土) 09:19:00
>>341
qemuは一部のチェックをしないため癖をしらない場合は注意が必要
遅くてもbochsのほうが安全

例えば、qemuはセグメントのリミットをチェックしない
Thread local workをfsやgsに使うとか考えると
使い方によっては他のエミュをベースにしたほうが良い
344270 ◆stwSgIY65Q :2005/10/02(日) 23:09:28
DPMIを一時中断してFATドライバの実装をすすめ、
ようやくファイルへの書き込めるようになりました。
これで一応、ファイルのコピーができます。
FDDベースのDOSとしてはだいぶ実用レベルに近づいてきたようです。
まだ削除やリネームはできませんが。

次はどのメディアをサポートすべきか・・・やはりHDD?
345Be名無しさん:2005/10/03(月) 02:58:05
MonoViewって何?
346Be名無しさん:2005/10/03(月) 07:53:58
馬鹿野郎、バグだらけ、使ったとしてせいぜい音楽鑑賞だけ、
APIも混沌としたWindowsに一万も払えるか。
Linux、暇がないのにディストリビューションごとに対応したソフトウェア
を構築しなければならず、それに対応するため細かい作業を必要とする。
ふざけるな、統合し、整備され、開発のしやすい、エンドユーザーに優しい
オペレーティングシステムが必要だ。Cはもう知っている。
「アセンブリ言語の教科書」を購入した。













今、.............................俺は新たな第一歩を踏み出した。
347Be名無しさん:2005/10/04(火) 00:24:57
>>346
ネタだとおもうががんばれ
348Be名無しさん:2005/10/05(水) 11:28:36
システムコールを作りたいのですが
syscall、sysentryを使いたいのですが
AMDかINTELによって処理を変えたりとか
何かしないと駄目ですか?
349 ◆GXX0p3qNcg :2005/10/05(水) 11:47:51
i386ならsysenter一本にした方が楽
AMD64なら逆にsyscall一本の方が楽
AMDかIntelで分けるのはあまりお勧めしない
350Be名無しさん:2005/10/08(土) 17:04:12
私も>>346の書籍を購入したのですが、今、Linuxしか入っていないので
はじめのdebugコマンドによるサンプルが打てないのですがどうにかして
Linux上でNASMを使っていきたいです。
どう読みかえていったらいいでしょうか?
351Be名無しさん:2005/10/09(日) 22:01:51
プリエンムティブなマルチタスクOSを作ろうと思ったけど
なんだかなー API(システムコール)で呼ぶ形のアプリなら
結局はAPI次第で窓やリナちゃんでプログラムと変わらない
やはり、PGの学力が低下したといわれるこのご時世だからこそ
ローレベルなファンクションコールが実装された最速なDOS
これが漏れらハカーー予備軍は求めている





今、新しい一歩を踏み出した・・・・
と思うのですが、64bit(最低でも32bit)で高速なDOSって
興味ありませんか???
352Be名無しさん:2005/10/09(日) 22:57:40
ない。
プリエンムティブってなんだよ。プリエンプ恥部だろ
353Be名無しさん:2005/10/10(月) 02:01:54
高速DOSが楽しいかは別として、癖の強いOSは欲しいな。
POSIX準拠のシステムコールとか、レガシーなランタイムとか
見慣れたシェルはLinuxで飽きたな。アプリ移植する気にもならんよ。
面白いOSを誰かつくってくれ。面白ければアプリぐらいなら作るぞ
354Be名無しさん:2005/10/10(月) 06:11:55
超漢字につくってくれよ
355Be名無しさん:2005/10/10(月) 13:24:42
超漢字ってBTRONなんでしょ?
って聞いて萎えた
356Be名無しさん:2005/10/10(月) 16:24:36
>>355
萎える気持ちはなんとなくわかるが。どのあたりで萎えるの?
一応聞いとく。
357Be名無しさん:2005/10/10(月) 19:17:44
WINもPOSIXもTRONももう飽きた
Brain*uckしてくれる奇抜なOSを触りたい
358Be名無しさん:2005/10/10(月) 20:51:35
>>357
その前にfu*kさせてくれる綺麗なおねーさんを触れよ
359270 ◆stwSgIY65Q :2005/10/10(月) 22:14:28
削除・ディレクトリ内リネーム実装完了。
フロッピーベースのDOSとしてなら一応動くレベルになりました。

今まで^C処理やエラー処理を無視していたのですが、
DOSのエラー処理は結構複雑ですね。
プロテクトモードから呼び出すのが面倒な仕様・・・
360Be名無しさん:2005/10/10(月) 22:18:53
>>359
すごいな。Monaを超えたね。
361295:2005/10/14(金) 22:52:09
270 さんすごい

>>349
私はAMDかIntelで分けるつもりでいたんですが
あまりお勧めしない理由を教えてください。
362Be名無しさん:2005/10/14(金) 23:12:10
>>361
理由は書いてあるじゃん
>i386ならsysenter一本にした方が楽
>AMD64なら逆にsyscall一本の方が楽

逆に貴女が分けようとした理由を教えてちょ♥
363270 ◆stwSgIY65Q :2005/10/16(日) 20:19:50
>>360
Monaはファイル操作APIがあまり整備されていないのでしょうか。
DOSの欠点はシングルタスクなところですね。

DOSコールはだいぶ実装できてきました。
試しに MJL/Lite で JPEG を表示してみたら動きました。
しかし、FreeDOSのCOMMAND.COMを動かしていると
バグなのか互換性問題なのか、フリーズしてしまいます。
COMMAND.COMが動かないと事実上つかえませんが、
難易度高そうです。
自分で実装するのとどちらが良いかな・・
364Be名無しさん:2005/10/16(日) 20:41:40
>>363
Monaは飽きたら放置で次のことの繰り返しだからすべてにおいて中途半端
365 ◆GXX0p3qNcg :2005/10/16(日) 20:56:39
シェルぐらいゎ自前で実装しませう
シェルゎOSの顔ですよ(´・ω・`)
366Be名無しさん:2005/10/16(日) 21:46:07
シェルといえばDOSシェルなんてのがあったな
使った覚えがないがw
367Be名無しさん:2005/10/16(日) 21:49:15
>>365
互換性テストとしては意味があるのでは

>>366
そこでFDですよ
先日作者が他界しておられたことが判明しましたが・・・
368295:2005/10/16(日) 23:05:19
>>362
それぞれのCPUで最適化が行われていると言われているからです。

>>349
では「が楽 」と言われているので逆の「がメンドイ」及び
あまりお勧めしない理由をの部分を
お聴きしたかった訳ですが
369Be名無しさん:2005/10/17(月) 10:55:04
>>363
FreeDOSならソースあるんだし、追いかけてみればいいんでは。
本物はメモリをけちるためにヘンな構造になっていたような気がするが、
FreeDOSのはそんな事無いのかな。

>>368
そういう枝葉な部分はモノが出来てから考えた方がいいような気がするんですが。
とりあえず呼ぶ側の手間も考えてくれ。
370295:2005/10/17(月) 20:54:50
>>369
今は設計段階で色々考えている最中で
あれこれ考え過ぎになってるようです。

取りあえず雛形を作ってみます。
371270 ◆stwSgIY65Q :2005/10/18(火) 22:48:52
>>365
そうですね。。
カーネルが終わったら作るかもしれません。

>>369
クロスデバッガのようなものが手元にないため、
COMMAND.COMクラスの規模になると、
例えソースがあったとしても追いかけるのはきびしいとおもいます。
最終的には、追いかけることになるのかもしれませんが。。

フリーのデバッガのEXDEBが動くレベルまでは互換性が向上しましたので、
フルアセンブラで書いた単純なソースならこれでデバッグできます。
テスト用のプログラムを書いてデバッグするのが良いか、
追うしかないのか。。
372Be名無しさん:2005/10/19(水) 00:33:48
>>371
初期化で止まるんであればprintfバラまいておけばいいんでないかい?
安易にデバッガに頼るとウソ情報にだまされることもあるぞ。
373270 ◆stwSgIY65Q :2005/10/23(日) 23:14:27
考えた結果、シェルも自前で実装してみることにしました。
かなり時間がかかりそうです。

>>372
プロンプトは出ます。
入力したコマンドとディレクトリによって止まります。
printfをばらまく方法はおそらくあるとはおもいますが、
そもそも 16bit コンパイラの TC++ がWinで
動かないのが痛いです。

半分くらいのシステムコールを順に呼び出すテストプログラムを書いて
デバッグを行ったところ、動作するプログラムは増えたみたいです。
FreeDOSのCOMMAND.COMは相変わらずだめですが。。
374Be名無しさん:2005/10/24(月) 12:36:38
>>373
TC4ならDOS窓で使った記憶があるが。
あれは配ってないのかな?
375Be名無しさん:2005/10/28(金) 22:26:39


【拷問ビデオ】恋人がAVに出演してた【許すな!これはAVじゃない】
http://ex10.2ch.net/test/read.cgi/news4vip/1130499649/

376270 ◆stwSgIY65Q :2005/10/30(日) 16:10:34
>>374
TC2とTC++1はおいてありましたが、
それ以外もあるのかはわかりません。

シェル書いています。今さらフルアセンブラで。
コマンドライン入力、EXEやCOMの実行をつけました。
つぎはCDなどの内部コマンド処理を書きたいところです。
377270 ◆stwSgIY65Q :2005/11/06(日) 22:08:49
シェルを書いていたら、truenameシステムコールに
致命的なバグが見つかりました。
これを修正したらFreeDOSのCOMMAND.COMも
ハングしなくなったようです。

今までフロッピーの入れ替え検出について
何も考えていなかったのですが、おもったより大変そうですね。
attention 割り込みが使えるのか、BIOSでpollingしかないのか。。
他の和製OSの検出方法も気になります。
378Be名無しさん:2005/11/07(月) 17:42:46
その辺の和製OSはそんな真っ当な処理してないと思う
379Be名無しさん:2005/11/07(月) 20:49:54
そもそも、PC/ATにはディスク交換をハード的に検出する機構が
無かったような気がするのう。

DOSは一定時間でバッファをフラッシュする仕掛けになってたような。

昔話すぎて詳細が思い出せん。
380Be名無しさん:2005/11/07(月) 21:15:33
その辺のことKがぼやいてた筈
雑菌あたりが知ってるかな?
381 ◆YLWgTxgTPw :2005/11/07(月) 22:26:28
>>380
現在のOSASKに関しては、ディスク交換はInsertキーで手動検出。
変更の適用もDeleteキーで手動。

DOSについてはよく知らないのでパス。
382Be名無しさん:2005/11/08(火) 19:02:55
OSを作る為に、新しく開発環境を買おうと思ってるんだけど
OS作ってる人達って、実際どんな環境(OSと開発環境ソフト)で開発してるの?
あと、お薦めの構成とかありましたら教えて下さい。
383Be名無しさん:2005/11/08(火) 19:29:27
>>382
漏れは、Cygwin + GCC(i386-elf) + EclipseCDT + Bochs を利用している。
他の人はどうなんだろう。。。

まぁ、コンパイラにGCCというのは確定だろうけどね。
384Be名無しさん:2005/11/08(火) 19:41:54
俺は、vi + gcc(i386-elf) + gmake + nasm + qemu

ところでMacOS X用のBochsって知らない?
385Be名無しさん:2005/11/08(火) 20:05:24
>>383-384
toppersとかの人?
386Be名無しさん:2005/11/08(火) 20:08:40
>>385
それはITRON七誌
387383:2005/11/08(火) 20:14:22
>>385
Toppersとか組み込み系とは無縁の人です。
ちょっと作成してみては、作り直しで全然機能が増えないorz
388384:2005/11/08(火) 20:21:25
>>385
俺も無関係
389382:2005/11/08(火) 21:16:45
>>383,384
コンパイラはgccで確定っすか
gccは何となく面倒臭そうだから避けたかったんですが、
やはりボーランドとかビジュアルスタジオとかよりもOS開発には向いてたりするんでしょうか?

何にしてもお二人のような構成だと普通にWindowsXPで使えるのと無料で手に入れられそうなのは魅力っすね
390Be名無しさん:2005/11/08(火) 21:24:22
>>389
横槍入れるようだけど。
Borlandは使ったことがないけど、VCなら「ある程度までなら」組める。
# VC(というかcl.exe)はC++を使うときにややこしい。
# ちなみにDigital Marsのコンパイラを使ってみたが無理だった
ただしCygwinのbinutilsを使わないといけない時点でgccの方が楽な気がします。
391382:2005/11/08(火) 22:10:18
>>390
VisualStdioは「ある程度まで」すか、
むしろgccの方が楽と...
コマンドとか覚えるの面倒そうだけどgcc以外を使ってる人もいなさそうだし、敬遠してもいらんないのね

やはり、最新のツールはファジー過ぎてOSのような機械に近いプログラムには向いてないんでしょうかね
392Be名無しさん:2005/11/08(火) 22:15:31
>>391
CooSはVS.NETだよ
393Be名無しさん:2005/11/08(火) 22:19:29
VSとか使うと金かかるからみんなに気軽にビルドしてもらえなくなるだろうが。
394Be名無しさん:2005/11/08(火) 22:35:54
>>393
もうすぐVS.NET2005Express日本語版の無償ダウソが始まるお
ttp://itpro.nikkeibp.co.jp/article/NEWS/20051108/224154/
395Be名無しさん:2005/11/08(火) 23:06:19
>>391
OSのような一切用意された環境がない状態で動かすものは、
どうしてもリンク処理や生成するバイナリが特殊なものとなってしまう。
GCCのようなごく一部のコンパイラを除いては、
これらの問題に対するサポートがないため自力で乗り越える必要がある。

>>394
VS2005Express無料化か。Windows使いには朗報だな。
396Be名無しさん:2005/11/08(火) 23:14:20
やっべこの人ww
http://mixi.jp/show_friend.pl?id=550892
397Be名無しさん:2005/11/09(水) 06:21:02
>>382
デバッグにはVC使ったほうが楽
ソースの書き方を工夫すればファイルアクセスなどは
VCでデバッグできる
398Be名無しさん:2005/11/09(水) 11:57:25
>>395
PEロダ書けばいいんだけどね
399Be名無しさん:2005/11/09(水) 23:18:00
>>398
GRUBにPEファイルサポートを追加する勇者が現れると神なんだけど。
400Be名無しさん:2005/11/10(木) 00:38:42
>>389
>>383,384 さん達がGPLが嫌いなら標準ライブラリーは自作されてると思います。

俺はGPLが嫌いだから
MSYS + MinGW(pei-i386) + nasm + qemu です。

>>397
どんな風に工夫すればVCでデバックが出来るか教えてください
401Be名無しさん:2005/11/10(木) 01:04:14
>>400
>俺はGPLが嫌いだから
>MSYS + MinGW(pei-i386) + nasm + qemu です。

・‥…ネタ?
402Be名無しさん:2005/11/10(木) 01:42:55
>>401
本気

何処がねた?
403Be名無しさん:2005/11/10(木) 02:22:27
>>402

MSYS + MinGW(pei-i386) + nasm + qemu

それ全部GPLじゃないの〜?
404Be名無しさん:2005/11/10(木) 09:53:29
>>400
馬鹿はけーん
405382:2005/11/10(木) 20:32:08
みなさんの意見を参考にMinGWとNASMとBochsで環境を構築しようと
....悪戦苦闘中(リンク切ればっかりで日本語情報少ない)

時に、383さん384さん400さん、お三方ともCygwinとかviとかMSYS とか使ってらっしゃるみたいですが、
何故ですの?エディタとしてすか?それともgccだけでなく他のGNUツールも必須って事すか?
406Be名無しさん:2005/11/10(木) 21:36:05
viはエディタ
あとbinutilsもいるね
407Be名無しさん:2005/11/10(木) 22:56:49
すみません
言葉か足りなっかた見たいです

追加前:俺はGPLが嫌いだから

追加後:俺は(成果物が勝手に)GPL(になるの)が嫌いだから

これでも、俺はばーか?

MSYS + MinGW(pei-i386) + nasm + qemu
これらは勿論 GPL で配布されてます。
408Be名無しさん:2005/11/11(金) 02:20:47
gccでコンパイルしたものが、すべてGPLになるわけではありませんよ?
409Be名無しさん:2005/11/11(金) 17:16:59
http://www.gnu.org/licenses/gpl-faq.ja.html#CanIUseGPLToolsForNF
より

フリーではないプログラムを開発するために、GNU EmacsのようなGPLで保護されたエディタを使っても良いでしょうか? GCCのようなGPLで保護されたツールを使ってフリーではないプログラムをコンパイルすることはできますか?

はい、なぜならばエディタやツールの著作権はあなたが書くコードは保護しないからです。法的には、あなたがどんなツールを使っても、あなたがご自分のコードに適用するライセンスに関しては何の制限も課されません。
410Be名無しさん:2005/11/11(金) 22:22:28
GPL嫌いには二種類あるね。

1. GPL自体が嫌いなので関わらないようにする人
2. 自分の成果物がGPLになることが嫌な人

実際1の人も多いので、
> 俺はGPLが嫌いだから
とだけ書かれたら1と思われても仕方ない。
411Be名無しさん:2005/11/11(金) 23:23:46
横入りだけど、具体的にはどういう場合にGPLが適用されるの?
412Be名無しさん:2005/11/11(金) 23:40:01
・自分で選んだ場合
・そのへんからGPLなコードをぱくってきた場合
413Be名無しさん:2005/11/11(金) 23:56:05
・GPLのライブラリをリンクした場合
・perlなどスクリプトでGPLのライブラリ関数を呼んだ場合
414Be名無しさん:2005/11/12(土) 00:00:15
GPLの影響を受けないのは
・GPLのツールで作ったデータ
・GPLのツールで機械的に変換されたコードやデータ
ライセンスに注意が必要(もしGPLならGPLになってしまう)なのは
・GPLのツールによって単にコピーされたコードやデータ
具体的にはBISONやAUTOMAKE、AUTOCONFなどのツールで
単にコピーされたコードなど。多くはGPLにならない特例があるが、
あくまでも特例であり個別の確認が必要。
415Be名無しさん:2005/11/12(土) 00:08:24
>>409
改めて読むとやっぱり難しいです・・・
やっぱり、ばーかだな OTZ
勉強しなおします

>>408-414
具体例ありがと
416Be名無しさん:2005/11/12(土) 01:32:46
ところでVxWorks でプロセスの状態にPend(待機) とDelay(休止) がありますけど
具体的にどうちがうんですか?
417Be名無しさん:2005/11/12(土) 21:37:36
よく知らんが一般的な実行可能状態と待ち状態のことかな?
実行可能状態はいつでも実行できるが、CPUには別のプロセスが割り当てられている状態。
待ち状態は入出力中だから、それが完了するのを待っている状態だが。

まぁ的外れかも試練が
418OS& ◆WRre/7Sh7Q :2005/11/12(土) 23:04:33
ちょっと質問させてください。
IRQ0をポート0x60に設定し、IRQ1のキーボード割り込みハンドラを0x61にしていて、
キーボード割り込みを捕まえようとしています。
文字は取得できているのですが、何故か割り込みハンドラが2回連続で呼ばれます。
どなかたわかるかたいらっしゃいますか?
419Be名無しさん:2005/11/12(土) 23:07:07
key down / key up が取れてるんじゃない?
後、文字じゃなくて、キーの番号が取れてるんでないかね。
420Be名無しさん:2005/11/12(土) 23:08:52
>>418
ちょうど俺もそこでひっかかってるんだけどw
偶然すぎ・・・
421OS& ◆WRre/7Sh7Q :2005/11/12(土) 23:32:37
>419
ありがとうございます。
key upとkey downで2回割り込みハンドラが呼ばれるってことなんですね。
これって、どっちかだけとればいいってことなのですか?
それとも、別の処理をさせたいから、2回割り込まれてるんですか?
(例えばどういう用途があるんですかね?)

勉強不足ですいません。このあたりが詳しくのってるページなどがあれば
教えてください。

>>418
一緒にがんばりましょう。
422Be名無しさん:2005/11/12(土) 23:36:43
>>421
例:[→]を押しながら[↑]を押すとか判定(ゲームで斜め移動)
423Be名無しさん:2005/11/12(土) 23:55:46
>>421
> このあたりが詳しくのってるページなどがあれば教えてください。
貴女が質問カキコしているOS-Wikiに載っているわけですが。
ttp://community.osdev.info/index.php?%28AT%29keyboard
(メイク・ブレイク)
424OS勉強中:2005/11/13(日) 00:00:52
>> 423
おー、ありがとうございます。
(質問しまくってるお恥ずかしいところを見られてしまいました。。。)
425Be名無しさん:2005/11/13(日) 13:33:11
ここでOS作ってるみなさんは言語はC++/Cとアセンブラですか?
426270 ◆stwSgIY65Q :2005/11/13(日) 22:03:31
急にスレが活発になっていますね。

>>379
pollingポートやBIOSコールは存在します。
ただ、調べた限りメディアを交換しても割り込みは
かからないようです。
DOSはおそらく BIOS で検出してます。
BIOS が検出能力を持たない場合は、2 〜 3秒で
フラッシュしているみたいです。

>>382
mingw/cygin 上で gcc、binutils、nasm を使っています。
テストコード生成には perl を使っています。
エミュレータは bochs です。

メディア交換検出は後回しにして、とりあえず
未実装のCONFIG.SYS を調べています。
デバドラのINITを呼ぶ程度であればすぐ作れそうですが、
謎な部分も多いです。
427Be名無しさん:2005/11/14(月) 14:40:37
>>426
だから、ドライブが対応していないので、FDCのステータス見ても
嘘情報なのですよ。

そういやPC9801はその辺ちゃんと作ってあったんだよなあ…
428270 ◆stwSgIY65Q :2005/11/15(火) 00:50:13
>>427
レスありがとうございます。

調べた範囲では、BIOS 経由の場合、
INT 13h/AH=15h と INT 13h/AH=16h のダブルチェックで
polling判定できることになっています。
INTERRUPTリストによると、IBMやMSのDOSもこれを
使っているようですので、期待していたのですが、
この判定は疑わしいのでしょうか?

この BIOS 機能は OADG (DOS/V編)にも記載がありましたので、
未確認ですが100% IBM-compatibleであれば動作すると期待していました。

最も、ここらへんのBIOSの実装はいい加減で互換性が低そうなので
(INTERRUPTリストのBUGSにたくさん記述があります)、
例え動いたとしても相応の対策は要りそうです。

NEC 98系のattention割り込みは楽でよいですね。
429Be名無しさん:2005/11/15(火) 01:45:52
Macやプレステ2で動くOS作る猛者は、いないのかな。
430Be名無しさん:2005/11/15(火) 09:49:21
>>429
Macは持ってるけどハードのことよく知らない・・・orz
431Be名無しさん:2005/11/15(火) 11:51:41
プレステのOSをパソコンに移植したいな。
432Be名無しさん:2005/11/15(火) 23:54:58
みなさん、今どの辺りを勉強、開発又は考案してるんですか?
433Be名無しさん:2005/11/16(水) 13:54:05
俺のはTCP通信も一応いけてるんだが.
メモリ周りやらんといかんのだが
(´・ω・`)テラメンドクサス
434Be名無しさん:2005/11/16(水) 14:34:10
TCP通信ってすごいですね・・
もれは、まだDMAコントローラについて勉強中です
まだまだ・・orz
435Be名無しさん:2005/11/17(木) 11:27:31
よし.過疎だし俺OS作るよ.
マンドクサガリだから進捗は遅々としたものになるけどね.
言語はCかC++で.性能や新しさじゃなくて
OS勉強したい人が使えるようなものを目指そうかな.

このスレ使ってもいいかしらん?
436Be名無しさん:2005/11/17(木) 11:41:52
ある程度成長するまではこのスレ使った方がいいと思われ
437Be名無しさん:2005/11/17(木) 13:33:57
じゃあ遠慮なく使わせてもらいます
438Be名無しさん:2005/11/17(木) 15:44:43
idtrでつまずいてます。定義した後どうすればいいのやら・・・
monaをちまちま解析するしかないでしょうか。
439Be名無しさん:2005/11/17(木) 16:18:55
>>435
普通KERNELにC++は使わないよ。
440435:2005/11/17(木) 16:45:18
>>439
いいじゃん何だって.
C++使ってるのも普通にあるんだし.
441Be名無しさん:2005/11/17(木) 17:03:27
>>438
>定義した後どうすればいいのやら・・・
定義って割り込みハンドラを設定した後のこと??
442435:2005/11/17(木) 17:11:30
>>438
ベクタテーブルと割り込みハンドラはもうできてんのかな?
idtr定義ってことは後はlidtでロードしたらいいんでない?
443Be名無しさん:2005/11/17(木) 17:21:54
>>438
ヒント LIDT命令

後、

『インテル・アーキテクチャ・ソフトウェア・ディベロッパーズ・マニュアル』
上巻:基本アーキテクチャ(資料番号243190J)
中巻:命令セット・リファレンス(資料番号243191J)
下巻:システム・プログラミング・ガイド(資料番号243192J)

の下巻は読みましょうね。
444438:2005/11/17(木) 17:30:08
はじめての486読みながら
typedef struct _DescTblPtr (
  unsigned short limit;
  unsigned long base:
) DescTblPtr;
とCソースに書いてある程度です…
>>441-443
LIDTですか。アセンブラですね。
相当時間がかかりますがアキテクチャ読みはじめます。とほほです。
445435:2005/11/17(木) 17:54:26
>>444
俺が昔書いたコードだと
typedef struct {
unsigned Limit:16;
unsigned Base:32;
}__attribute__ ((packed))IDTR_t;

んで各割り込み番号に対応したベクタテーブルつくって
その物理アドレスだったかをIDTR_tに突っ込んで
最後
IDTR_t IDTR;
asm("lidt %0 : : "m"(IDTR));
としておりますよ.
結構長いことさわってないから微妙に間違ってたら
スマソ
446Be名無しさん:2005/11/17(木) 17:59:31
>>444
アセンブラ関連の板
http://www.e-net.or.jp/user/missing-link/assembler/

いずれ必要になる情報

GNU make 日本語訳(Coop編) - 目次
http://www.ecoop.net/coop/translated/GNUMake3.77/make_toc.jp.html

GNU リンカ LD の使い方
http://www.sra.co.jp/wingnut/ld/ld-ja.html#SEC_Top

Interrupt Jump Table
http://www.ctyme.com/intr/int.htm

ブートの仕組み
http://nobumasa-web.hp.infoseek.co.jp/boot/boot.html

Programmer's Technical Reference for MSDOS and the IBM PC
System Memory Map の所
http://www.o3one.org/hwdocs/bios_doc/dosref22.html


がんばれ
447Be名無しさん:2005/11/17(木) 18:14:12
>>444

自分の書いたコード探してきた。定数とか.defファイルを無視すれば、どんなことやってるか大体わかると思うけど

typedef struct {
word_t limit;/* idtr limit */
word_t baseL;/* base address of idtr */
word_t baseH;
} IDT;

#undefDEF_IDT_ENTRY
#defineDEF_IDT_ENTRY(a, b)  b,
static int idt_vector_index[] =
{
#include "idtentry.def"
-1,
};

extern "C" void default_handler();
448Be名無しさん:2005/11/17(木) 18:15:56

voidinit_idt_table()
{
       IDT idtr;

       for (int i = 0; i < NR_IDT_ENTRYS;i++)
         setIDT(i, (dword_t) default_handler);
       for (int i = 0; i < NR_IDT_ENTRYS;i++) {
         int entry = idt_vector_index[i];
         if (entry == -1)
           break;
         setIDT(entry, (dword_t) idt_vector[i]);
       }

       idtr.limit = NR_IDT_ENTRYS * sizeof(idt_entry) - 1;
       idtr.baseL = ((dword_t) IDT_BASE) & 0xffff;
       idtr.baseH = (((dword_t) IDT_BASE) & 0xffff0000) << 16;

       asm volatile("lidt %0 ": :"m" (idtr));
}
449Be名無しさん:2005/11/17(木) 18:16:49

static voidsetIDT(int sel, dword_t address)
{
       idt_entry * entry = (idt_entry*)(IDT_BASE + sel * 8);

       entry->offsetL = address & 0x0000FFFF;
       entry->offsetH = (address & 0xFFFF0000) >> 16;
       entry->selector = KERL_CS_SELECTOR;
       if (sel == 0x22)
           entry->type = 0xee;/* DPL = 3 */
       else
           entry->type = 0x8e;/* DPL = 0 */
       entry->unused = IDT_UNUSED;
}
450Be名無しさん:2005/11/17(木) 18:31:36
>>440
>435
>OS勉強したい人が使えるようなものを目指そうかな.

って言ってるじゃない。C++でカーネル書くと色々欠陥が多くて困るのに
OS勉強したい人にカーネルをC++で書くのを推めるのは嫌ーな感じ。
451435:2005/11/17(木) 18:54:44
>>450
資源をオブジェクトとクラスで表した方が
わかりやすいかと思ったんだけどね.
個人的にはChoicesっぽくやろうかと思ってた.
いや,これがいいものかどうかはともかくね.
実際,カーネルCでしか書いたことないし
C++自体ようしらんし,C++でやると
ライブラリ周りかなんかが困るのかなという
認識しかもってなス.

んだばその欠陥とやらを教えてケレ.

452Be名無しさん:2005/11/17(木) 20:01:06
>>451
自分では踏まないようにしてる程度だから教える知識はないわい。
C++に嵌まった人に聞くがよい。
453Be名無しさん:2005/11/17(木) 20:09:38
>>451
C++で困るのは
・リンク関係
・メモリまわりを先に実装しなければならない(new演算子とdelete演算子)
ぐらいかな。
あとカーネルライブラリとかに汎用性を持たせようとすると、修飾子の都合で
C++でのエクスポートが出来ない(クラス外関数ならextern "C"でエクスポート可能)…ぐらいか。

少なくとも俺がC++で少し書いたときには特に問題は無さそうだった。
454453:2005/11/17(木) 20:10:35
もうひとつ思い出した。initとfiniを自力で呼び出さないといけない(in gcc/g++)
455435:2005/11/17(木) 20:16:34
>>453
ありがと.
作り始めはいいけど,そのうち何かしら問題でそうだなぁ.
無難にCにしようかしらん.
456438:2005/11/17(木) 20:24:58
>>446-449
素晴らしい!
既存のソースからlidtの部分だけを読み取るのに苦労してたので助かります。
家についたら解析ですー

自分はCでゴリゴリ書く予定です
win上でstringに頼り切ってる身分で何言ってるんだって感じではありますが。
457Be名無しさん:2005/11/17(木) 20:44:25
OS作りで苦労するのは
1)マイクロカーネル or モノシリックカーネル?
2)ファイルシステムはマルチスレッド?

かな・・・・
自分は2)で詰まった><
458Be名無しさん:2005/11/17(木) 21:32:19
さっきまでWindowsのインスコで苦労していた俺はこのスレに何が書かれているのかわかりません><
459Be名無しさん:2005/11/17(木) 22:11:22
くんなよ
460Be名無しさん:2005/11/17(木) 22:12:54
>>457
BIOSを使用するとマルチスレッド化は出来ないですよね?

BIOSを使用せずに IO port を叩かないといけないのかな>onz

所で質問です。
FDCを制御する場合の情報を持ってる方、URLで良いんで教えてください。
ぐーぐる先生で聞いても適切な情報を教えてくれないんです。
461Be名無しさん:2005/11/17(木) 23:31:00
>>460
http://community.osdev.info/index.php?%28FDC%29765A
http://fetish-jp.org/ascat/tg/tgd5.htm


おれもちょうどFDCの制御やってます;;
ただうまく行きません;;
本当はDMAでFD→メモリ(又、その逆)の転送がやりたいんだが、全く上手く行かないんで
今はFDC→CPU→メモリ(又、その逆)の転送についてじみちにやってます;;
というか、お互い頑張りましょう
462Be名無しさん:2005/11/17(木) 23:38:07
>>460
BIOS呼んでいる間、スレッドが切り替わらなければ別に問題ない。

どっちかってーと32bitモードで呼べない方が厳しいような。
463461:2005/11/17(木) 23:41:24
一応しょぼい知識をひけらかしますが、(駄文ですんません・・・)
(FDCについての制御)

ライトコントロールレジスタ(機種によって名前違うかも・・・)で初期設定をする?

コマンドはFD→CPUのリードコマンドです。
まずコマンドフェーズに入る前に、ステータスレジスタを見張って、
コマンドレジスタに書き込み可能ならば、コマンドレジスタにコマンドコードを送る。
そして、そのコマンドに必要なパラメータを順次送信する。パラメータの種類や数は
コマンド毎に異なります。

コマンドフェーズを終了すると、実行フェーズに移行する。ここでコマンドが実行される。
例えば、FDからデータレジスタに転送されたり・・・

その後、リザルトフェーズで後処理をする、なんちゃら

ただ、理論は分かってるんですが実際にやってみろと言われると、ちょっとできないっす・・・;。;
464461:2005/11/17(木) 23:48:27
あと、後処理についてですが、実行フェーズが終わるとFDCはCPUに割り込みをかけるそうです。
その中でリザルトフェーズに移るというか、後処理をします。EOI発行だったり、FDC内にあるステータスレジスタ
を数回読み込んだり(←これしないと、だめみたいです・・・すべてのステータスレジスタの値を読み込まないと次の
コマンドに移れないそうです)
465461:2005/11/17(木) 23:54:18
パソコンのレガシィI/O活用大全
―割り込みとDMAからシリアル/パラレル・ポート、FDD/IDEインターフェースまで ハードウェアデザインシリーズ
桑野 雅彦 (著)

http://www.cqpub.co.jp/column/books/2001a/34331PC_Legacy/default.htm

この本って何処かに売ってないんですかね・・・一応一章だけはウェブに乗ってるんですが・・・
BIOS使わない入出力関係の情報収集がはげしくツライっす
466Be名無しさん:2005/11/18(金) 10:14:20
本屋に頼んで取り寄せてもらえばいいんでは?
CQなら大概の所で扱えると思うが。
467Be名無しさん:2005/11/18(金) 14:03:23
>>461
DMA転送で見落としガチなのは
1)転送先が16Mを超えている(DMAは24ビットアドレス)
2)バウンダリ64Kに違反している

はずしていたらすみません
468Be名無しさん:2005/11/18(金) 16:06:59
みなさんはOSを開発する上で勉強した書籍はなんでしょうか?

自分は初めて読む8086と486を買いました。

これ以外に、お勧めの書籍を教えてください。
469Be名無しさん:2005/11/18(金) 16:40:28
>>468
MINIX本じゃないかな
470435:2005/11/18(金) 17:16:09
>>468
初めて読む486と>>443の資料(Webで落とせる)
あと,PCプログラマーズバイブルだっけかな.
紫色のでかい本.これは手に入れるの難しいと思う.
471Be名無しさん:2005/11/18(金) 20:56:56
OS入門用にMINIX本って本当にいいのかな。。オレも読んでるけど。
UNIX系OSの基礎を知るにはいいけど、MINIX自体は出来の悪いKernel
だと思う。
#Microkernelの概念自体が失敗気味と思う。
LinusはMINIXを見ないでLinuxを作ったと聞いた覚えが有る。実際
中身は全然似てないし。
472Be名無しさん:2005/11/18(金) 20:58:14
s/OS入門用/OS開発入門用/
473Be名無しさん:2005/11/18(金) 21:23:20
>>471
MINIXの欠点はマルチスレッドがない点かな。
とくにファイルシステムが単一スレッドなのが致命傷
ただこうゆう概念もあることを勉強するのもいいと思います。
ちなみにマイクロカーネルならMach3.0のソース読むといいよ
474460:2005/11/18(金) 21:39:29
>>461
おー、ありがとう。

今、出張中でゆっくり読めないけど帰ったら勉学に励みます。

>>462
V68モードで呼び出す事を想定していますが、スレッドの切り替えの
問題は同じですね。

kernel側の管理で考えます。m(_|_)m
475460:2005/11/18(金) 22:14:51
>>474
間違えた
v68ではなくv86です
476Be名無しさん:2005/11/19(土) 00:59:16
>>462
問題はあるぞ
完全BIOSであればよいのだが、I/Oポートを
直接アクセスする場合はBIOSとの互換を考慮する必要がある
例えばBIOSがUSB FDDを使っている場合に
PCI叩いてUSBを初期化する場合とか
APICを使う場合とか
477Be名無しさん:2005/11/19(土) 10:59:01
知ったか乙

PCIとAPICのドライバ書けばいいだけだろ
478Be名無しさん:2005/11/19(土) 12:36:00
MINIXってOSを勉強したい人のために作られてるんでしょ
だから性能云々よりか単純な作りを理念に置いているらしいが・・・
479Be名無しさん:2005/11/19(土) 17:44:07
エミュレーションすべきはAPICじゃなくてPICだとおもうが
そもそもフルスクラッチからそこまで達するとはおもえんな

趣味なのだから好き勝手にOSを作るのは良いのだが
同じようなコードを何度も別の人が書いていて無駄な気がする
コードの共有とか考えたほうがよくね?
480Be名無しさん:2005/11/19(土) 19:17:58
っ[OSKit]

まあ有志で用意するにしても、ライセンスどうするとか出てくるし、
それくらい簡単に書けるくらいでないとOSなんて書けねーと思うわけですが。
481Be名無しさん:2005/11/19(土) 19:56:25
BIOSの中身って何処かに公開されてないんですかね?
482Be名無しさん:2005/11/19(土) 21:04:53
>>480
OSKitはGPLだからなあ

ライセンスどうするかの問題はわかってる。
とはいえ、例えばFDC、HDD、LANなどのドライバコードは
みんなで作ってzlibライセンスのように
他に使いまわせるライセンスで
共有するとか、それが嫌なら
ドライバのABIを決めてバイナリコードを共有するなり
すればよいと思うわけで。

>>481
BIOSの実装は各社で別々なので
OADGのドキュメントやinterrupt listに書いてある
インターフェース仕様だけで作ったほうが良い
どうしても見たければbochsとかのBIOSならソースがついているはず
483Be名無しさん:2005/11/19(土) 21:48:16
>>461
http://community.osdev.info/

readとwriteだけなら関係ないが
すべてのコマンドが3フェーズ構成なわけでもないし
非同期コマンドは自分でsenseする必要があったはず
自動seekは普通onになっているが
offの場合はreadやwriteの前にseekが必要だったはず
484483:2005/11/19(土) 21:49:13
orz
URL消すの忘れた
485Be名無しさん:2005/11/19(土) 23:30:59
>>473
Machねぇ。これも昔流行ったみたいだけど今どうなの?
あんまり使われてるの聞かない。20世紀末のアイドル?

>>478
単純じゃないよ。複雑でごちゃごちゃしているよ。
オレが読んだのはVer2.0。意外と1や3はすっきりしてるのかもね。
486Be名無しさん:2005/11/19(土) 23:32:20
>>485
デスクトップOSのNo2がMachなわけだが。
487Be名無しさん:2005/11/20(日) 00:16:31
>>483
レスどうもです。
そういやseekのこと考えてなかったっす・・・
試してみます!
488Be名無しさん:2005/11/20(日) 08:44:01
>>485は文句つけるだけで知識も理解力もないみたい・・・
489481:2005/11/20(日) 12:53:21
>>482
情報ありがとう
さっそく調べてみます
490Be名無しさん:2005/11/20(日) 17:50:40
今年の5月20日に「お前は半年ROMってろ」といわれたものです。
今日でやっと半年たちました。
皆さんお久しぶりです。涙でそうです。
491Be名無しさん:2005/11/20(日) 18:08:26
>>490
お久しぶりです……と言いたいところなのですが、
このスレには2005/05/20の発言は見当たりません。
とちらのスレの何番様でいらっしゃいますでしょうか?
492Be名無しさん:2005/11/20(日) 18:33:26
>>490
もう半年ROMってなさい
493Be名無しさん:2005/11/20(日) 19:42:46
>>492
あなたがROMってなさい
494Be名無しさん:2005/11/20(日) 22:06:19
>>490はコピペですが・・・
495Be名無しさん:2005/11/20(日) 22:27:22
>>494
みんな知ってましたが
496Be名無しさん:2005/11/20(日) 22:27:40
くだらないコピペはスルーの方向で。
497Be名無しさん:2005/11/21(月) 22:27:05
お前ら今年の紅白は録画しとけよ!
498Be名無しさん:2005/11/22(火) 21:38:37
>>497
仲間ヲタ?
499Be名無しさん:2005/11/24(木) 08:59:48
270-DOSが欲しいんだけどどこでダウンロードするの?
500Be名無しさん:2005/11/25(金) 14:38:37
windowsでgcc nasm msysでmakeするだけでコンパイルできるCで書いてあるOSないですか…
勉強しようにもコンパイルできません…
noname antos どちらの初期バージョンもコンパイルできません
501Be名無しさん:2005/11/25(金) 15:12:03
>>500
Monaのちょっと前のやつ(0.2系)ならgcc nasm msysでmakeできるよ。
CじゃなくてC++だけど。
502Be名無しさん:2005/11/25(金) 20:38:56
>>500
ってかmonaは出来るぞ。
お前本当にmakeだけやっているんとちゃうの?
ちゃんと
make depend
make
(make install)←いるか忘れたが

ちゃんとdependしているか?
Cygwinでもコンパイルできるからさ。
503Be名無しさん:2005/11/25(金) 20:41:16
このすれヤサシス
504Be名無しさん:2005/11/25(金) 21:08:10
>>502
良く嫁

>>500
>windowsでgcc nasm msysでmakeするだけでコンパイルできるCで書いてあるOS
505502:2005/11/25(金) 21:20:29
>>504
当然読んだ、ってか読みすぎたか?

>makeするだけ
dependを知らん可能性まで考えた俺は馬鹿ですかそうですか本当にすいませんでした。
506Be名無しさん:2005/11/25(金) 21:25:34
>>505
Cygwinじゃないだろ?
> msys

Monaは試してないだろ?
> noname antos
507502:2005/11/25(金) 22:11:49
久しぶりに死にます。どうもすいますいますいませんでした。
508270 ◆stwSgIY65Q :2005/11/25(金) 23:52:56
お久しぶりです。最近スレの進行が早いですね。

>>499
配布は考えていませんでしたが、
http://hovweb.hp.infoseek.co.jp/ にバイナリを置きました
今のところ日本語DOSとしての機能がないため、実用にはなりません。
509Be名無しさん:2005/11/26(土) 00:30:41
どっかで見たと思ったら貴様か!
510Be名無しさん:2005/11/26(土) 00:36:50
>>508
ウリのHello, world!が動いたニダ!
511Be名無しさん:2005/11/26(土) 00:45:25
例外処理が甘いけどなかなかよくできてるね
512は@ c178.016.c3-net.ne.jp ◆cplnFO9T0I :2005/11/27(日) 15:25:16 BE:121047438-
513Be名無しさん:2005/11/27(日) 15:57:11
電源つけたら喋りだすPCを作りたいのですができますか?
514Be名無しさん:2005/11/27(日) 16:10:24
どういうOSやねん。まぁ「不可能」ではない。
515Be名無しさん:2005/11/27(日) 21:14:51
270さんや他の方達に質問なんですが、ハードの知識って
どのくらいお持ちなんでしょうか?
516Be名無しさん:2005/11/28(月) 00:31:46
うんこ
517Be名無しさん:2005/11/30(水) 13:12:59
>なお、 INTの2回目の切り替えでは 16bitから32bitへの意図的な切り替えが必要になります。
>この切り替えは、例えば予め決めたアドレスで HLT 命令など特権命令を実行して#GP(0)を起こし、例外処理でそれを検出すれば実現できます。

仮想86モードからプロテクトモードへの切り替えはARPL命令を#UDでトラップするのがセオリー
(#GPだと#GPハンドラが大きく複雑になりすぎるので
518Be名無しさん:2005/11/30(水) 22:00:01
UD2ではなくてARPLなのはなぜ?
519Be名無しさん:2005/11/30(水) 22:15:02
ARPL命令はROM領域にほぼ確実に存在するバイト値だから
520OS勉強中& ◆WUQMOVkl3M :2005/12/03(土) 23:21:00
今現在、ブートローダを作成中なのですが、dmaの64k alignmentについて質問があります。

現状は、0x07c0:0000にfloppyの最初のセクタが読み込まれ、
その0x07c0:0000からの512kを0x9f00:0000に移動し、
floppyの2個目以降のセクタを0x0100:0000に読み込んでいます。

dmaの64k alignmentに従うということは、

まず、floppyから18セクタを4回繰り返し読み込み、(72セクタ分、0x1000:0000に達する)
0x1000:0000から0x2000:0000は80セクタ分なので、

18セクタ読み込み * 4回 + 8セクタ読み込み

という処理を0x1000:0000から0x2000:0000, 0x3000:0000 ...
というように続けていけばいいのでしょうか?

どなかたご存知の方、ご教授ください。
また、この辺のことが詳しく書いてある、ページ、書籍等がありましたら、教えてください。
521Be名無しさん:2005/12/04(日) 00:46:05
>>520
数字は修正がいりそうだが64kの考え方自体はそう
まとめて読み込みたいなら
トラック読み込み+コピーで書いたほうが
無難だとおもうがね
522Be名無しさん:2005/12/04(日) 05:14:57
遊び感覚でVIPによってラウンジは繰り返しスレッド乱立されて
虐げられています。
本当にやめて欲しいです
ラウンジはVIPには何もしていないのに
いつも荒らされます
今回も(゚∞゚)ペーチュンチュン  という名前のスレッドを
乱立されてしまいました。

今ラウンジを開くとVIPによってスレッドが乱立されて
殆ど機能しなくなってるラウンジを見る事ができます・・・

ラウンジ
http://etc3.2ch.net/entrance/
523OS勉強中:2005/12/04(日) 09:44:55
>>521
ご返事ありがとうございます。

> 数字は修正がいりそうだが64kの考え方自体はそう

数字どっか間違ってましたでしょうか?

>まとめて読み込みたいなら
>トラック読み込み+コピーで書いたほうが
>無難だとおもうがね

floppyからまとまったセクタ分を毎回同じところに読み込んで、そこから
別の場所にコピーするということですか?
そのような方法は一般的でしょうか?





524Be名無しさん:2005/12/04(日) 09:47:14
まとまったセクタ分読む

と言うのは正しくないな

1トラック読む
525ぴゅあ:2005/12/04(日) 19:22:16
>>523
> floppyからまとまったセクタ分を毎回同じところに読み込んで、そこから
> 別の場所にコピーするということですか?

FDC, DMAに関連するコードはかなり昔に書いてたのであまり覚えてなくて
DOS/V機に載ってるDMA, FDCではコードを書いたことはないので
正確ではないと思うけど。

フロッピィから1回のDMA転送が可能なのはシリンダ単位になるだろうと思います
9セクタまでか18セクタまで可能かはわからないですけど。(FDCについて調べれば判る筈)

64Kのブロックに対して9セクタ或いは18セクタ単位では端数が出てしまうし
また9セクタ或いは18セクタ単位で必ずプログラムの介入が必要になるだろうと思うので

私は恐らく9セクタ或いは18セクタ単位で一気に取り込むバッファを別途設けて
0x1000:0000以降にはCPUで順次転送していく手を使うでしょう。

64Kのブロック単位を気にしながら
読み込むセクタ数を調整するとか
0x1000:0000以降に直接転送させるとかを考えると
ロジックは複雑になるだろうし、パフォーマンスも落ちたりするだろうと思いますよ。
526ぴゅあ:2005/12/04(日) 19:24:23
>>520
> その0x07c0:0000からの512kを0x9f00:0000に移動し、
の意図は判りませんが

単に移動することだけに限定すれば(>>525での話も踏まえて)
>floppyの2個目以降のセクタを0x0100:0000に読み込んでいます。

# 先頭セクタからを0x9f00:0000に読み込む。(読み込んだものを転送する中に含める)
とした方が全体的にシンプルになったりしそうな気もしますけど。。。

初回のCPUによる転送だけ512バイト飛ばして0x0100:0000〜に転送するとか
初回は2セクタ目以降8セクタ或いは17セクタを取り込んで転送するとか
条件を付けるというのもあるでしょうけど。

DMAC, FDCについてはトラ技増刊「パソコンのレガシィI/O活用大全」辺りにも
書かれていますが(絶版らしいけど)
具体的な例まではなかったと思います。

また細かいところはDMAC, FDCのデータシート或いはアプリケーションノートなりが
探せればと思うのですけど…手に入るのかどうか?

またGoogleで例えばキー「dma fdc 8237」とかで探してみると
サンプルとかは難しいかもですが、64Kのブロック単位, ページレジスタのこととかが
出てきたりするでしょう。
527OS& ◆WRre/7Sh7Q :2005/12/04(日) 20:19:01
>ぴゅあさん
お返事ありがとうございます。

>> その0x07c0:0000からの512kを0x9f00:0000に移動し、
>の意図は判りませんが

floppyの先頭512kは0x07c0:0000に読み込まれ、2個目以降のセクタは
BIOS領域の後の0x0100:0000に読み込んでいます。しかし、54セクタ
(リニアアドレスで0x7c00-0x1000)以上読み込むと、現在実行中である
ブートコードを上書きしてしまうためにこのようなことをしております。
そのため、ビデオメモリなどの領域(0xA000:0000〜)に重ならないリアルモード
で使用できる一番後ろのメモリ領域に、先頭のコードを移動しています。

ぴゅあさんがおっしゃるように、1トラック(18セクタ)ずつをバッファに読み込み、
CPUで順次、0x0100:0000以降に転送していくのが、単純かつ簡単そうなので、
試してみたいと思います。

トラ技増刊「パソコンのレガシィI/O活用大全」の一部(?)が
http://www.cqpub.co.jp/column/books/2001a/34331PC_Legacy/default.htm
にありましたので、こちらも参照してみたいと思います。



528ぴゅあ:2005/12/04(日) 21:07:54
>>527
> floppyの先頭512kは0x07c0:0000に読み込まれ、2個目以降のセクタは
> BIOS領域の後の0x0100:0000に読み込んでいます。しかし、54セクタ
> ・・・

なるほど。

この辺りは0x1000:0000から0x2000:0000にとかいう辺りで
「BIOS領域の後の0x0100:0000」が0x1000:0000と書き間違えたのかな?とか

私自身0x9f00:0000と0x09f0:0000を取り違えてしまってたりしましたが・・・。

頑張ってください。

> トラ技増刊「パソコンのレガシィI/O活用大全」の一部(?)が

確かに第1章そのものが書かれているみたいですね。
DMAについては2章, FDCについては5章になるんですが
第1章の全てはそのまま入っているんだろうと思います。
529Be名無しさん:2005/12/04(日) 21:54:03
あさがおOSのイメージ作りたいんですけど
ldの所でコケてしまいます…
どうしたらいいでしょうか?
msys + mingw + nasm
530270 ◆stwSgIY65Q :2005/12/04(日) 22:57:59
こんばんは。

>>515
OS開発の前に関係ありそうな仕様書を一通り集めて目を通しています。
DOSの開発にはオーバースペックだとおもいますが、
OADGのATハード仕様に書かれたことはだいたい理解しています。
IA32の仕様書やInterrupt Listもある程度は目を通しています。
こういう知識は直接DOSの開発に使うわけではありませんが、
ハードの振る舞いを知っているとBIOSの挙動も想像がつきますし、
デバッグなどで役に立ちます。

>>517-519
おっしゃる通り、ARPL命令のほうが効率は良さそうですね。
また、270-DOSの特殊な実装では、INT 30hを使うのも効率的だとおもいます。
割り込み処理の高速化はあとまわしにしていますが、
最後のチューニングではこれらを使うことを考えたほうが良さそうですね。
現状放置しているCPUキャッシュの制御のほうが実機では効果ありそうですが。。
531270 ◆stwSgIY65Q :2005/12/04(日) 23:06:16
>>527
ご参考までに、
9f00:0000にはBIOSのワークエリアがありますので、
270-DOS ではメモリのサイズをINT 12hで取得しています。
通常は 639K が返されます。

拡張メモリのサイズは
1. INT 15h AX=E820h
2. INT 15h AX=E801h/E881h
3. INT 15h AH=88h
の順で試し、最初に成功した戻り値で取得しています。
532Be名無しさん:2005/12/05(月) 23:08:18
>531
> 9f00:0000にはBIOSのワークエリアがありますので、
ユーザ領域では?

BIOSは 0000:0200-0000:05FFとA000:0000-F000:FFFF までの何処かを使っていると
認識してますが間違ってますか?

>515
自分はアプリケーションプログラマなのであんまり知識はないです。
アセンブラでプログラムが組める程度の知識しかないので
必要なときに勉強してます。
533Be名無しさん:2005/12/05(月) 23:16:49
>520 の内容で質問があります。
ブートストラップコードの開始位置が 07C0:0000 と0000:7C00 の2種類の記述を見かけます。

私は後者の 0000:7C00 でコーディングしていますが どちらも正解なのでしょうか?
実機とBochsでは起動できていますが・・・
534Be名無しさん:2005/12/06(火) 05:16:42
最終的には同じアドレスだが
厳密には 07C0:0000 が正しい

っつーか、0000:7C00 だと
その後の処理で相対ジャンプその他
コーディングに不都合が生じるので
素直に 07C0:0000 使う方が無難
535Be名無しさん:2005/12/06(火) 09:26:16
曖昧だから最初に FAR JUMP 使うんだよバーカ
536ぴゅあ:2005/12/06(火) 21:17:25
>>533
どちらが正解でどちらが誤りとかいうのはないでしょう。
BIOSによってどちらで飛んでくるかはまちまち(好みの問題?)らしいです。

この場合、大抵$0000:7C00〜$0000:7DFFにあるコードの範囲で扱おうとしているでしょうし
$07C0:0000と$0000:7C00の違いを意識しないで書けるコードで書いているなら、(当然)気にしなくていいでしょうし、
意識が必要(そう)なら最初にどちらかに統一してしまえばいいでしょう。

敢えて言うまでもなく
$0000:7C00ではCSレジスタで物理アドレスの$00000〜$0FFFFにアクセスできることになりますし
$07C0:0000では同様に$07C00〜$17BFFになります。
CS,IPレジスタを再設定するとすれば、私の場合は気持ち的に$0000:7C00を優先したいと思ったりしますね。

尤もCSレジスタを使ってメモリアクセスをしたりしたいのでなければ
(BIOSのベクタテーブルを読み出したいとかで他のセグメントレジスタが開いてないとか)
特に気にすることもないんではなかろうかと思ったりです。
537ぴゅあ:2005/12/06(火) 21:18:01
>>532
使っていないように見えたりするけど
私は一応$9FC00〜$9FFFFを予約域として捉えています。

BIOSによって違ったりもするかもとも思いますが
INT 15h, AX=E820hで報告されたりするでしょう。

ADVANCED CONFIGURATION AND POWER INTERFACE SPECIFICATION Revision 2.0c, August 25, 2003
「15.5 Example Address Map」
http://www.acpi.info/spec20c.htm

私としての気持ちとしてというようなものですけど
あまり意味がなかったりするとも思うけど、
$80000〜$9FFFFに直書きでコードを置くのは
避けるようにしていたりしています。

あとメモリ域の先頭部分については
私は$00000〜$003FFと$00400〜はその延長として$007FFは外しておこうと思っていたりします。
なんとなく$001000〜と$002000〜辺りは気になったりもするところですが。

私としての気持ちとしてのものばかりになってますけどね。
538270 ◆stwSgIY65Q :2005/12/06(火) 22:05:45
こんばんは。最近活発ですね。

>>532
DOS 実装時に調べたAT互換機のメモリレイアウトを書いておきます。
ACPIの仕様に従って INT 15h/AX=E820h で
取得するのが正しいです。

00000h-003FFh 割り込みベクタ
00400h-004FFh BIOS ワーク
00500h-005FFh 不明(未使用?)
00600h-9BFFFh 未使用
9FC00h-9FFFFh BIOSワーク(*)
A0000h-BFFFFh VGA
C0000h-EFFFFh レガシ拡張BIOS(VGA BIOSを含む)
F0000h-FFFFFh BIOS
100000h-xxxxxxh 未使用の拡張メモリ
xxxxxxh-xxxxxxh ACPI、SMP BIOS ワーク

(*)VGA RAM直前にあるBIOS予約領域は、
0400h:000Eh が指すセグメントと、
9FC0h:0000hに書かれたサイズで算出、
通常は9FC00h-9FFFFhです。

POSTのエラーコードやAPM、ACPI、PCI BIOSやマルチプロセッサなど
あたらしめのBIOSが必要とするデータは
いろいろなところに置かれているようです。

もし、プロテクトモード移行後に(VGA以外の)BIOSを、
APMやACPIも含めて全く使わないのでしたら、
潰してもかまいません。
539532:2005/12/06(火) 23:58:17
> BIOSは 0000:0200-0000:05FFと
割り込みベクターは 0000:03FF まででしたね

>537-538
まだ、ACPI関連は調べていなかったので助かります m(__|__)m
540533:2005/12/07(水) 00:43:30
>534-536
0000:7C00 を想定する場合は org 07C00h でコーディングする為に
CS:IP が 0000:7C00 や 07C0:0000 でも問題が無いが
転送先は xxxx:7C00 に固定されるが

07C0:0000 を想定する場合は org 0h でコーディングする為に
CS:IP が 0000:7C00 や 07C0:0000 でも問題が無く
転送先が xxxx:0000 にできてメモリーの利用形態の自由度が上がる。

かつ、offset アドレスの扱い方しだいって事ですね
あってるかな(^^;)

個人的には 0000:7C00 が好きですが・・・
541ぴゅあ:2005/12/07(水) 22:41:22
>540
微妙かも・・・。
微妙かもっていうのは、その結果出てくるバイナリの形は違っていたりするだろうってところで
要はCS:IPがどちらでも目的の場所に飛んできたときにちゃんと実行できればそれでいいわけです。

私の場合にどっちが好みか?というところで「再設定するとすれば$0000:7C00」を採っていますが
この話の場合では、高々512バイトで(他、条件を踏まえて)CSレジスタの値を気にするようなコードを書くほどのこともないので
コードを書くときの表現のし易さ, リンク後の吐き出されたバイナリの扱い易さとかを踏まえて
実際のコードは$07C0:0000であるものと"仮定"して書いています。
(もしCS:IPが$0000:7C00だったとしても問題がないコードを書いているという前提があるので)

どちらでも問題ないと判って書いていれば、どちらでも好みで選べばいいと思いますよ。
542540:2005/12/07(水) 23:24:54
ぴゅあさん有難う御座います。
org の意味が今頃になって詳細に理解できました OTZ.

>540 の解釈は間違いです(ーー;)
543Be名無しさん:2005/12/11(日) 14:08:02
またMEG-OS復活?
544Be名無しさん:2005/12/11(日) 15:07:39
545Be名無しさん:2005/12/11(日) 21:29:14
実際のメモリの保護はオペレーティングシステムではなくハードウェアで行われる理由ってわかる人います?
546ぴゅあ:2005/12/11(日) 22:20:36
>>545
どういう保護のことを言っているのか判りませんけど、
それはハードを設計した人の方針によりで
設計者の説明があれば明確になることでしょうけど
そこまでは判りません。

私が考える(推測する)ところでは
「ソフト的に対応することでハード的コストを削減する(ソフト化への移行を推進しよう)」
という考えがある時期から急激に増えてきた反面、
「ソフト的に処理するよりハード的に処理させた方が性能や保護の面で信頼性の向上が期待できる」
といったような考えもあったりするからではないでしょうか。

ソフト的な処理では他のプログラムにより故意に書き換えられる可能性は高くなる
(ウィルスソフトによって書き換えられてしまったとかいうのもそのひとつと言えるのでしょう)
ということも考えられるのでしょうし、
いくらCPUの処理速度が上げられたと言っても
ソフト的に処理するよりはハード的に処理された方が速いでしょう。

その上で
> オペレーティングシステムではなくハードウェアで行われる
というところは
OSを設計する人がOS内でやろうと決めればOS内で実装されたりするのだろうし、
ハードの持っている機能を活用しようと考えればハードで行われるのでしょう。

なので、傾向としてはあるかも知れませんが、(絶対的な)決まりではないと思いますよ。

もし考えついた実装がハードに実装された機能を利用して実装できない
或いは機能不足とかいうことになればOS内で実現されることになるでしょうし、
その後、その実装がハードに採用されることがあったりすれば
ハードで行われることにもなったりするのでしょう。
547Be名無しさん:2005/12/11(日) 22:35:45
>>546 わざわざありがとうございます。いきなりこんな問題出されたんで、めっちゃ困ってたんです。
548Be名無しさん:2005/12/12(月) 00:41:47
ハードによるメモリ保護ってパリティとかコンデンサの
549ぴゅあ:2005/12/12(月) 08:09:13
>>547
問題?

授業の課題とかだったりするなら、そのまま答えにしてもいかんと思うよ?
どんな答えを出させようとしているのか、ちゃんと問題文を考えてでないと。。。
550Be名無しさん:2005/12/13(火) 01:27:26
そもそも>>546は間違いじゃないか?
551Be名無しさん:2005/12/13(火) 21:08:35
>>543
そろそろ中止の予感
552438:2005/12/18(日) 16:33:43
ずいぶんお久しぶりです…
以前書き込んでからコード的には進んでないですが今日中にキーボード割り込みは果たしたい所です
<日記帳>http://ostukuruyo.blog39.fc2.com/</日記帳>
553270 ◆stwSgIY65Q :2005/12/18(日) 22:31:34
SYSコマンドの実装を進めています。
フォーマット済みFDDへは
インストールできるようになりましたが、
HDD対応にはまだMBRとPBRの実装が必要です。

他の和製OSはどうやってHDDブーとしているのでしょう?
フルスクラッチでしょうか?liloやgrub?
554Be名無しさん:2005/12/18(日) 22:38:44
MBRまで作る必要あるの?

ほとんどの和製OSはHDDブートまでできなかった希ガス
555Be名無しさん:2005/12/19(月) 01:23:28
ブートセレクトでもしない限りは普通に入ってるであろうMBRで十分
まっさらなら一度DOSでもいれるかFDISK /MBR
パーテーションに入っちゃえばあとはFDと同じ

ファイルシステムがFDで使えるFAT12止まりってところが多いぽ?
556Be名無しさん:2005/12/19(月) 22:45:49
デバックはまだしていないけど 私はMBRまで作ってます。
ブートストラップコードがFDD依存になっていなければ
FDD用のブートストラップコードで15MByteまでのHDDから
起動できますね。

HDD起動を視野に入れるとFDISK/FORMAT/SYSコマンドの実装がめんどいので
後回しにしてますが・・・

>>553
私は独自のローダ経由で起動するように作っています。
557Be名無しさん:2005/12/28(水) 13:05:55
WINDOWS EXEならこれで動くんですが
void main(){
  int i;
  char *str = "abcdefghijklmnopqrstuvwxyz";

   for (i = 0; str[i] != '\0'; i++) {
    printf("a");
   }
  //for(;;);
}

KERNELでこう書くと表示されません
void start(){
  int i;
   char *str = "abcdefghijklmnopqrstuvwxyz";

    for (i = 0; str[i] != '\0'; i++) {
     ((char*)0xB8000)[i * 2] = str[i];
     ((char*)0xB8000)[100 + i * 2] = 'B';
    }
   for(;;);
}

何故なんでしょう…
558Be名無しさん:2005/12/28(水) 18:06:19
>>557
そのkernelが何者か書かないと、誰も答えられないような気がしますが。

リアルモードなら、far pointerといういにしえの技術があるので、
それを学んでください。
559557:2005/12/28(水) 19:59:30
>>558
ttp://www.geocities.jp/myosmyosmyos/src/051228.zip
全部UPしました。
far pointerですか。プロテクトモードになってるはずなので謎です。
560Be名無しさん:2005/12/28(水) 21:13:51
>>557
100+が何のつもりで書いているのかがわからない
561ぴゅあ:2005/12/28(水) 21:31:11
>>557
試してないですけど(VIDEO BIOSによっても違うだろうし)

ビデオモードとかは問題ないのだろうとして(VRAMアドレスとか)

アトリビュートは問題ないのかなぁ?
と思ったりですけど

(WINDOWS EXEなら…との比較はあまり意味も無さそうな??)
562557:2005/12/28(水) 22:51:15
>>560
100+は位置調整の為ですforループが動いてるのか調べたいので
アトリビュートですか。VRAMの奇数に入れる奴ですね。平気だと思います
Windows上と比較したのは
windowだとprintf部分が実行さえれて表示される
bochsとかだとforの条件が一致しないでprintfが無視される&一致してもstr[i]が表示されない
ので困ってます
仕組み的にはmonaとかと同じコードのはずなんですが…
563超TA ◆leaf/RYZgY :2005/12/28(水) 23:05:53
>char *str = "abcdefghijklmnopqrstuvwxyz";

このliteralなstringへのpointerが正しく指していない予感。
PEなりELFなり、正しくrelocateしないと見当違いな場所を読みに行ってしまうよ。
564ぴゅあ:2005/12/28(水) 23:08:30
>>557
100+の方はやりたそうなことは読み取ってたから気にしてはないですが
"VRAM BIOSにより"だと思うけど画面クリアのときに
アトリビュートを0x00にしているものもあるだろうと思いますよ。
だとすればフォアグランドは黒なので何も見えなくて合っていることになるでしょう。

> 仕組み的にはmonaとかと同じコードのはずなんですが…
はmonaのコードとか見てないので判らないですが
「平気だと思います」ではなんにもならんでしょう。
まずそこを「平気でした」にするべきと思います。
それでもダメならじゃあなんだろう?と進むんだと思いますよ。
それを試してみることは大して手間の掛かるものでもないだろうと思いますしね。
565ぴゅあ:2005/12/28(水) 23:13:58
>>563
> このliteralなstringへのpointerが正しく指していない予感。
仮にそうであってもゴミが見えたりしてもいいかも。
そこがたまたま非表示な文字だったら…ではあったりするけど
その辺りは
> ((char*)0xB8000)[100 + i * 2] = 'B';
がフォローしそうだけど、どうなんでしょう。
566ぴゅあ:2005/12/28(水) 23:15:12
あ・・・ そっか
1バイト目が0x00だったら。。。
567Be名無しさん:2005/12/28(水) 23:43:06
ヒント:セレクタ
568ぴゅあ:2005/12/29(木) 00:52:04
Bochsなのかぁ…と動かしてみようかと思ったけど
動かすまでに手間が掛かりそうなのでパス。
イメージがついてたので実機でブートしようと思ったけどダメでした。
そういうもの?(ブートコードは未チェック)

>>567の言うセレクタがヒントになるのかどうかは判らないですけど
0x400バイトから始まるコードを見てみると
char *str = "abcdefghijklmnopqrstuvwxyz";は
0x402000〜に配置されるようになっているような?

あと100+ということでしたがkernel.cでは
+1994〜と+2000〜になってますよね。
Bochsで80x25でこの位置に書けば出て来るんだとすれば
少なくとも+1994〜は見えている?
それ以降の部分は>>563さんの辺りなのかも。
569557:2005/12/29(木) 01:13:52
>>564-566 >>568さん
アトリビュートの意味を完全にはき違ってました、すいません。
>まずそこを「平気でした」にするべきと思います
平気でしたとしたくて色々やってるのですがうまくいかず…勉強不足です
>>568
イメージはちゃんと動くはずなんですが。。
ちなみにイメージはNTRawriteなどで書き込まないと実機で起動できないです
というか実機で動かすのは何がおこるのかわかりません
>少なくとも+1994〜は見えている?
forで括ってある所以外は書き込めてます。

どうも配列でこけてる気がします…
>>563さんがおっしゃってる通りっぽいですね。
リロケートについて調べ中です。。
570Be名無しさん:2005/12/29(木) 16:18:32
リンカでベースアドレスが指定されてないのに動くわけがないじゃん
571557:2005/12/29(木) 17:50:42
解決しました。
ttp://www.geocities.jp/myosmyosmyos/src/051229.zip
upしました。
>>570さんが言ってる事がビンゴでした。皆様ありがとうございます。
いやはや自分のヘボさ加減に泣き入ります。
(gccは今まで触れた事無かったので…)
次は割り込みです。
572Be名無しさん:2005/12/29(木) 19:26:39
>>571
そうそこ。>>570が言ってるとこ設定できたりしないのかなとか
時間がなかったので帰ってきたら書いてみようかと思ってました。
あとコンパイラとかって何使ってるのか確認しようとか。
無事、解決されたみたいですね。

> イメージはちゃんと動くはずなんですが。。
もう一度確認してみようと思ってますが、
昨日動かしてみた時点ではipl.asmのline78でCF=1になってて
延々ループしてしまう羽目になってるようでした。
(暫く使ってなかったから壊れてるかな。。。)

因みに
> 平気でしたとしたくて

> forで括ってある所以外は書き込めてます。
で「平気でした」ってことになりますよ。
573ぴゅあ:2005/12/29(木) 19:42:30
>>571
実機でループ(CF=1)になるというところは
ipl.asmのline74で"mov cl,2"としてあるのに
line72で"mov al,18"にしてあるので(ずっと前にこの辺りの話があったりしましたが)
ここを"mov al,17"としました(kernel.imgの0xBFバイト目を0x12→0x11に書き替え)

ちゃんと出てますね。
少なくとも試したマシンではちゃんとアトリビュートも初期化されているらしくて
表示されました。
574557:2005/12/30(金) 20:54:12
>>572-573さん
コンパイラというか開発環境はwinxp上でmsys + nasm + mingwです。
指摘されてるように書き換え実機での起動確認しました。ありがとうございます。
割り込みはうまくいったのでそろそろコード解析して書き直したいと思います。
Higeposって表示されるままじゃmonaの皆様に失礼ですので。。
575ぴゅあ:2005/12/30(金) 21:49:34
>>572の名前は消えてたみたいで。。。
名前入ってないと、あんななるんですね
今頃知りました。。。
576Be名無しさん:2005/12/31(土) 15:32:45
D言語が実装されたら俺もOS作ろうと思ってる。
577Be名無しさん:2005/12/31(土) 15:58:12
578Be名無しさん:2005/12/31(土) 18:36:12
DでOSいいですね
579Be名無しさん:2006/01/01(日) 00:57:06
おけおめ
今年も良いOSが実りますように…
580Be名無しさん:2006/01/01(日) 10:32:07
去年は実ったの?
581Be名無しさん:2006/01/01(日) 15:02:05
自分的には実ったよ。
熟してないけど・・・。
582OS勉強中:2006/01/02(月) 12:21:14
現在、x86の環境でTSSを使ったタスクスイッチの実験をしています。
(proc_switch内では、selector:0 へ ljmp)

void
task1(void)
{
int i = 0;
for (i = 0; i < 1000; i++) {
_sys_printf("task1 %d\n", i);
proc_switch(0x28); // task2のセレクタは0x28
}
}

void
task2(void)
{
int i = 0;
for (i = 0; i < 1000; i++) {
_sys_printf("task2 %d\n", i);
proc_switch(0x20); // task1のセレクタは0x20
}
}
(続く...)
583OS& ◆WRre/7Sh7Q :2006/01/02(月) 12:21:49
(続き)

上の実験はうまくいってるのですが、timer割り込みハンドラ内でタスクスイッチをする場合、
proc_switch内でljmpしてしまうため、asm("iret")などの割り込みから戻る処理
を通っていません(気がします)。

void timerHandler(void) {
// EOI
outp(0xa0, 0x20);
outp(0x20, 0x20);

proc_switch(0x28); // 現在0x20, 0x28のタスクへスイッチ

asm("mov %ebp, %esp");
asm("pop %ebp");
asm("iret");


このような場合、どのようにしたらよろしいでしょうか?
また、普通はこうは書かないなど、アドバイスがありましたらお願いします。
(現在は、TSS1個を共有する(linuxなどの)方法に行く前に、複数TSSを使うタスクスイッチを
実験しております。)
584Be名無しさん:2006/01/02(月) 14:17:25
タスク切り替え前にちゃんとEOIを発行してれば問題ない
585OS& ◆WRre/7Sh7Q :2006/01/02(月) 15:04:13
>>584
ご回答ありがとうございます。
スタックポインタの復帰やiret等はどっかのタイミングで自動的にされているということでしょうか?

timerHandlerが呼ばれたら、すぐにproc_switch(0x28)を実行してるのに、task1のループが全部終わってから出ないとタスクスイッチが起きません。
どなたかおわかりになる方、ご教授ください。
また、この辺のことが詳しく書いてあるWebページなどがありましたら教えてください。


586ぴゅあ:2006/01/02(月) 18:08:28
task1(), task2()がどう起動されているのかとか、proc_switch()がどんな実装なのかは判らないですけど、
それらはうまく行っているということなのでコードから推測されるやろうとしているだろうところは
満足しているんでしょう。

timerHandler()についてどういう呼ばれ方をするかによって動きは変わるのだろうと思いますが
(参考: IA-32インテルアーキテクチャソフトウェアデベロッパーズマニュアル 下巻とか)

いくつか疑問もあったりするところですけど…
それはややこしそうでもあるので割愛させて頂いて。

ひとつ、
目的として、単に「IRETを通過させたい」んだということにすると
IRETで呼び出し元に戻るようにしているところを
proc_switch(0x28);を含むルーチンへIRETでジャンプするという形にするという手があるでしょう。
IRETを使ったジャンプとかいうのは別に珍しいものではなく古くからある手法です。
ただ、timerHandler()がどういう呼ばれ方をしているのか(IRETはどう動くのか)とか、
割り込み許可/禁止状態, その他EFLAGS等の扱いもちゃんと考える必要があるでしょう。

またタイマ割り込みとスイッチは分けて考えるのがいいような気もしたりです。
そうすると期待している形かどうかは判らないですけど、今やりたいだろうことはそんなに難しいことではないのかも知れません。

ただ、これから先の目的は違うと思うので、
task1(), task2()が主役でタイマ割り込みはその動きに影響を与える(脇役)という見方(なのだろうか?)ではなくて、
task1(), task2()を起動しているメインでタイマ割り込みを処理してtask1(), task2()はその上で動くものとした方が良いような気もしたりです。
尤もそれは昔からやられているようなものになってしまうでしょうけど。。。

> timerHandlerが呼ばれたら、すぐにproc_switch(0x28)を実行してるのに…
タイマ割り込みが起こっていることは確認されているのだろうと思いますけど、timerHandler()内でproc_switch()が正しく動作できる状態にあるのかとか?
587Be名無しさん:2006/01/03(火) 11:08:01
>>583
スタックの復帰やiretは不要です。
タスクスイッチのやっていることを理解していないのであれば、
エミュレータ組み込みのデバッガ等で挙動を確かめましょう。
理解せず使うと、いずれ謎の#GPに悩まされます。
588OS& ◆WRre/7Sh7Q :2006/01/03(火) 13:57:22
>ぴゅあさん
>>583
ご回答ありがとうございます。
では、割り込み時にスタックに積まれるEFLAGS,CS,EIPレジスタはタスクスイッチ時に
popされているという認識でよろしいでしょうか?
(timer割り込みが入って、タスクスイッチの前に、またtimer割り込みが入った場合に、
どういう挙動をするかがわかりません。。)
タスクスイッチ等をもう一度勉強し直します。
また、この辺の挙動について詳しく書いてある書籍、ページ等がありましたら、
教えていただけると助かります。
589ぴゅあ:2006/01/03(火) 17:00:40
> 割り込み時にスタックに積まれるEFLAGS,CS,EIPレジスタはタスクスイッチ時に
> popされているという認識でよろしいでしょうか?

私は違うと思います。POPされるとか、しなくていいとかいう認識の仕方?として。

>>586にもレスしたように、
やろうとしているのがタスクスイッチであるのは間違いないと思いますが、
task1(), task2(), proc_switch()らがどのように扱われているかによって変わってくるだろうと思います。

参考となるだろうと思われるのは、IA-32インテルアーキテクチャソフトウェアデベロッパーズマニュアル
[Intelサイト(http://www.intel.co.jp) → サイトマップ→ハードウェア開発者向けサイト ホームページ → 日本語技術資料 (マニュアル/アプリケーション・ノート/データ・シート 他)]
が最短ルートだろうか?

上巻: 第6章 プロシージャ・コール、割り込み、例外
中巻: 第3章/ 3.2. 命令リファレンス(RET, IRETとか)
下巻: 第6章 タスク管理
(最新を見ているのではないので章とかずれているかも?)

或いは
> (timer割り込みが入って…
の点では「下巻: 第5章 割り込みと例外の処理」もかも。

書籍では「はじめての486」とかに書かれていそうですが、書かれている中身自身を見るのとは別の目的でチラッと見ただけなので、恐らく書かれているだろうくらいしか判りませんけど。

IRETがリターンとして動くかタスクスイッチとして動くかはその呼び出し方によって変わると考えています。
それはまたtask1(), task2()についても言えるのだと考えていますが。
「考えています」とは自分自身がまだ実際に確認していないからですが、昨年、仕事で商用OSを解析していたときにそういった部分のコードを実際に目にして、なるほどなぁと理解しています。

その辺は先の辺りを熟読すれば解ってくるのだろうと思います。
恐らく、proc_switch()とIRET, 及びタスク(下巻: 第6章 タスク管理)の関係を見ることになるんでしょう。
単純に割り込み処理とタスク管理(TSS)をごっちゃにして扱ってしまうといけないんでしょう。
590ぴゅあ:2006/01/03(火) 17:04:39
長くなってしまって申し訳ないけど分けて書きます。

>>586に書いた
> IRETを使ったジャンプとかいうのは別に珍しいものではなく古くからある手法です。

(RETをJMPに摩り替えると説明した方がいいのか?)
の「古くからある手法」というのはちょっと自信がなくなりました。
かつてZ80を使い始めていた頃に割り込みから早く抜け出したいというところで考えついたもので、書かれた書籍があるか?と問われると判らないです。
「古くから…」というのは自分の中でだけだったかも知れない・・・とか思ったり。

が、他にもやっていた人は居るんだろうし、「考えついた」とか言えば「そんなの昔からあるよ」とかツッコミが入ると思うので、「古くからある」としても間違いではないだろうと思います。
また、これを実際に使われているものとして先の商用OSの中(最近という意味で)でも見ていますし、珍しいものではないと思います。


> タスクスイッチ等をもう一度勉強し直します。

実際のコードとしてはずっと昔にOS-9のコードで最初に見たのだろうと思います。
書籍でも色々見たことを覚えていますが、それは今は持ってないので挙げられないです。また、もう手に入らないのだろうと思います。(同じ物は)

例えばGoogleとかでキー「マルチタスク」とかで検索すると色々と手法とか書かれているサイトや書籍の情報が出てくると思います。
探せというだけではつまらないので例を挙げてみると

CQ出版社「リアルタイム/マルチタスクシステムの徹底研究」
http://www.cqpub.co.jp/hanbai/books/33/33261.htm

そのまま使えるサンプルコードは載ってなかったりするだろうと思いますが、かなり参考になるのではないだろうか?という予感がしています。
(サイトの例は面倒なので割愛。探してみてください。)
591Be名無しさん:2006/01/03(火) 17:25:06
monaスレの人は何処行っちゃったの??
592Be名無しさん:2006/01/03(火) 18:25:32
593Be名無しさん:2006/01/03(火) 19:19:03
シベリアなんかに作っても誰も寄ってコネェーな
594Be名無しさん:2006/01/03(火) 20:01:38
>>593
荒らししかいなかったから見せしめ
595Be名無しさん:2006/01/03(火) 20:05:38
荒らしに合わせて良スレを潰すとは愚かな奴等め
596OS& ◆WRre/7Sh7Q :2006/01/03(火) 20:55:01
>ぴゅあさん
抽象的な質問に対して、親切に回答して頂きありがとうございます。

現在、task1, task2, idle_task の3つのタスクをつくり、task1,2のループ処理
が完了したらidle_taskで無限ループということが実現できました。
(タイマ割り込みの度にタスクスイッチ)

void timerHandler(void) {

// EOI(コード割愛)

// タスクスイッチ
// 現在task1 => task2、task2 => task1, task1,task2終了=> idle_task

// 呼ばれない処理達
asm("mov %ebp, %esp");
asm("pop %ebp");
asm("iret");
}

実際、ぴゅあさんからもご紹介があった、「はじめて読む486」を見て、
タスクスイッチ部は作りました。動いているはいるものの、内部でどういうこと
が行われているかを完全に理解していないので、
「IA-32インテルアーキテクチャソフトウェアデベロッパーズマニュアル 」を見て、
理解しようと思います。
「CQ出版社「リアルタイム/マルチタスクシステムの徹底研究」は持っていますが、
スケジューリングアルゴリズム等について詳しく書いていますが、実際にマルチタスクを
どうやって実現するかについては、殆ど書いていなかったと思います。


597OS勉強中:2006/01/04(水) 15:32:11
割り込みハンドラの実行中に、EOIを発行後、同一IRQの割り込みが発生する場合
ってありますでしょうか?

具体的には、タイマ割り込みハンドラ内の先頭でEOIを発行した直後、
そのハンドラ内での処理が完了する前に、もう一回タイマ割り込みが発生し、
2回目のタイマ割り込みハンドラの処理が先に終了する

という現象は起こりえますでしょうか?
598Be名無しさん:2006/01/04(水) 16:35:14
>>597
EOIとはPIC->CPUの割り込みを有効にするもの
HW->PICとかCPUの最終割り込みはそれぞれ別に制御する
なのでCPUに割り込みを生成させたくなければ
どれかとめておく
599ぴゅあ:2006/01/04(水) 21:54:23
>>597
起こり得るでしょう。
そのためにEFLAGSにIFがあり、STI,CLI命令があるでしょう。
例えタイマ割り込みの間隔がタイマ割り込み処理の処理時間より長くても起こり得ます。
ただ、タイマ割り込み発生時にはIF=0でしょうからSTI命令を実行しない限りは受け付けられないと思いますけど。

あまり覚えてないので正確ではないですが、
IF=0の状態ではその間に起こった割り込みは保留にされます。(IF=1になるまで待たされる)
それが「タイマ割り込みの間隔が長くても」というところに関わってきたりします。
またEOIは保留にされていた同レベルの割り込みに対して、次を送ってもいいよと伝えることになるんだろうと思うので、タイマ割り込み処理の早いうちにEOIを送って、かつ、IF=1にしてあったら
後続のタイマ割り込みが先に処理を終えるということも起こり得るだろうと思います。
600ぴゅあ:2006/01/04(水) 22:01:13
>OS&さん

> idle_taskで無限ループということが実現できました。(タイマ割り込みの度にタスクスイッチ)
万事解決?


> 「はじめて読む486」を見て、タスクスイッチ部は作りました。
言われてみれば、書かれていたのをチラッと見たような気がしたりです。

> スケジューリングアルゴリズム等について詳しく書いていますが、実際にマルチタスクを
> どうやって実現するかについては、殆ど書いていなかったと思います。
そうなのかぁ。。。
と思って、本屋さんに行けたときに見てみようと思ってましたが(夕方にでも)
ウィルスだ〜という騒ぎで車で連行されて。。。(結局なんともなかったけど)
行く時間もなくなってしまったので、また行けたときに見てみます。

この辺り、見て来れてからと思っていたのですけど、取り急ぎレスだけ。


あと、ちょっと気になったというか・・・
「IA-32デベロッパーズマニュアル」を見ていけば解るのだろうとも思うのですけど、タスクスイッチの処理はpop %ebpとiretの間にあるのがよさそうに思えたりです。

あと、タイマ割り込み処理の呼び出しがどのようにしてあるかによるのだと思いますけど、ゲートを介していた場合IRET命令の次ってproc_switch()の先頭へジャンプする必要があったようにも思います。
proc_switch()の中身全体をfor ( ; ; ) { }で囲ったのでもいいんだろうか と思ったりですけどね。

proc_switch()の中身にもより…だと思うので、もう一度「はじめて読む486」(?)を見てからと思っていたりですけど。

ちょっと書籍を見てみて思うところがあったりしたら、また改めて。
601Be名無しさん:2006/01/05(木) 00:12:50
>>595
まともなスレになってるみたいだけど。
602Be名無しさん:2006/01/05(木) 07:12:34
早い段階でPICにEOIを送ると割り込みが許可されて二重に割り込みが発生する危険性がある
割り込み処理が終わるまでEOIを保留にすると他の割り込みをPICが受け取れない
なので
高度なOSはIMRをマスクして処理中の割り込みを禁止した後EOIを送ってPICを開放する
603ぴゅあ:2006/01/05(木) 21:30:37
>OS&さん
私が>>589で想定して書いた書籍「はじめての486」(?)は似てるけど別物だったような気がしたりです。
で、その後「はじめて読む486」の方もチラッと見てたのが判りました。
…なんてのは別にどうでもいいですね。(^^;

CQ出版社「リアルタイム/マルチタスクシステムの徹底研究」(No.15)もなんとか見つけました。
私だと5秒で棚に戻してますね。。。
やっぱ自分の目で見てからでないと良さそうかも?とかでも言い難いですね。
解っているつもりの人か、十分やって解った人に向いた本なのか。。。そういった人たち向け?だったりするのかも?
尤も十分解ってきてるなら読まなくても足りてるような気もしないでもないですが。

想像力(創造力?)豊かに…とか言えるかと思ったけど、この本では今求めてそうなところは無理でしょうねぇ。。。

もうちょっと良さそうなのはないのかと、少ない書籍を見回しましたが、
辛うじて同シリーズのNo.17「リアルタイムOSと組み込み技術の基礎」というのを見つけました。
同じ読むならこちらの方が断然良いですね。
ただ…かなり物足りない(想像力(創造力?)豊かにするにも)というところで微妙というか
私としてのお勧めには程遠いですね。

でも知識を増やすために読んでみておくのは結構いいんだろうと思います。
なんかもうあまり内容覚えてないけど。。。(汗)

あと1冊、私としては面白そうな本もあったのですが、今OS&さんがやられている形態とはかなり違うものと思ったので取り敢えず置いておきましたけど。

ずっとどうしようかと思ってたけど、あれば気晴らし?にも読むだろうし、どんな風にしてるのかも何となく判るかな?と、折角なので「はじめて読む486」を買ってみました。
詳しいところとかは兎も角も、ヒントくらいは出せたりすることもあるんではないかと。
604OS勉強中:2006/01/06(金) 00:22:07
>ぴゅあさん
いろいろとご回答、調査ありがとうございます。とても参考にさせて頂いて
おります。

> 「IA-32デベロッパーズマニュアル」を見ていけば解るのだろうとも思うのですけど、タスクスイッチの処理はpop %ebpとiretの間にあるのがよさそうに思えたりです。
これは、割り込み前のスタック((cs, eip, eflagsが詰まれる前)の状態にするという
ことですよね? これをしないと割り込みが入るたびにスタックが詰まれていってしまい
そうですね。

ちょっと話がそれるかもですが、
複数のTSSを使ったタスクスイッチの場合は、tssのセレクタにfar jumpするので、
割り込みハンドラに戻らないと思いますが、
linux等のTSS1個を共有する場合では、タスクスイッチコードの後に割り込みハンドラに戻って
来るので、iret等がきちんと実行されると僕は理解しています。
(タイマ割り込みハンドラ内で、タスクスイッチをしていることを想定しています。
実際にlinuxではしてないかもですが。。)
この理解は正しいでしょうか?(まだTSS共有版を実装してないので、予想と他の人のコードを見た感じで話していてすいません。。)

「リアルタイムOSと組み込み技術の基礎」は参考までにとりあえず、立ち読みしてみます。
605OS勉強中& ◆9PKzhVYiO2 :2006/01/06(金) 00:25:01
>>602
> 高度なOSはIMRをマスクして処理中の割り込みを禁止した後EOIを送ってPICを開放する
なるほどです。参考になります。ご回答ありがとうございます。
606Be名無しさん:2006/01/06(金) 21:35:11
俺の今は使ってない自作PCのスペックを教える。
CPU:Pen600くらい
Mem:多分256だったと思う
OS:Win98SE
そんな俺のPCを再利用するためにOSを作ってくれ。
インターネットとメールができればいいです。
607Be名無しさん:2006/01/06(金) 21:58:14
>>606
そうおもうなら自作してくれ
ここはそういう人のためのスレだ
608Be名無しさん:2006/01/06(金) 23:01:07
OSはいいよOSは。ただドライバを作るのがめんどくさい。
609Be名無しさん:2006/01/08(日) 10:49:34
どんなOSつくってもいまのPCじゃろくな物にならん。
610Be名無しさん:2006/01/09(月) 03:57:47
>>609
じゃああなたは今何を使って書き込んでますか
もしかしてBIOS?
611Be名無しさん:2006/01/09(月) 19:42:12
MPUはOS用にアプリ用とは別に備えるべきだな。
マルチタスクなどという「ハード資源の有効活用」的な考えはもう古い。
ひとつの高性能なMPUにOSからアプリまで無理やり走らせ、結局は
重いOSにすべて引きずられてしまうあほらしさ。
ひとつのアプリにひとつずつMPUを割り当ててしまえ。
612Be名無しさん:2006/01/10(火) 19:22:08
>>610-611
最近の携帯で多いですね。
613Be名無しさん:2006/01/11(水) 20:42:23
ハードディスクも無くしちゃえ。
プログラムはフラッシュメモリにいれ、それをわざわざRAMにロードせず
直接走らせる。当然ハーバードアーキテクチャを採用し、フラッシュメモリ
はリードオンリー。
614Be名無しさん:2006/01/11(水) 22:36:37
【IT】MSのFATシステムに関する特許は有効、米特許商標庁が認める[01/11]
http://news18.2ch.net/test/read.cgi/bizplus/1136961124/
615Be名無しさん:2006/01/11(水) 22:51:54
何度も議論されてることだが、特許対象はLFN。
8.3ファイル名でFATを使う限りは問題なし。
616Be名無しさん:2006/01/12(木) 01:04:04
NTFSってボリュームの結合できないよね。
617Be名無しさん:2006/01/12(木) 01:06:00
>>614-615
CNETがミスリードしてるんだな。最近そういう記事をよく見掛ける。
618Be名無しさん:2006/01/12(木) 01:11:30
cnetって誤報だらけの・・・なんでもない
619Be名無しさん:2006/01/12(木) 01:26:23
>>618
あー、ミスリードじゃなくて天然なのね....
620Be名無しさん:2006/01/16(月) 01:36:00
わざとだろ
621Be名無しさん:2006/02/04(土) 18:23:35
なかなか進みが無いのでROMを解除して質問させて頂きます

皆さんは情報をどこから仕入れているのでしょうか
(探してもなかなか詳しいのは出て来ないのです)
622Be名無しさん:2006/02/05(日) 02:07:45
っgoogle
623Be名無しさん:2006/02/05(日) 10:11:31
ソースを読むとか
624621:2006/02/05(日) 12:16:52
>>622
調べてみました
ただもう少し踏み込んだのがなかなか見つからないのです
>>623
著作権とかライセンスとかは大丈夫なのでしょうか
625ぴゅあ:2006/02/05(日) 17:02:04
>>624
探す・調べるだけでは求めるものまでには到達しなかったりするでしょう。
断片的にも集まった情報らから組み立てる。
実際にそうであるか、やって確かめる。
手に入れた情報が100%合っているとは限らない(提示する際のミスとか含めて)ですし。

>著作権とかライセンスとかは大丈夫なのでしょうか
どんなことに対してどう関わってくるのか。
ソースを読むことだけで著作権とかライセンスとかが絡んでくるのだとすると
読める形でソースを見せていることからして問題にならないんだろうか?
と思ったりもしますけどね。
626ぴゅあ:2006/02/05(日) 17:08:09
書き忘れ・・・

>ただもう少し踏み込んだのがなかなか見つからないのです
もう少し踏み込んだものというのがどういうものかにもより…だったりもするでしょう。
見逃しているか、探しようが足りないのか、的を外しているか
或いは容易には手に入らないものなのか。

>>625にダブるけど、足りないものを自分で補ってみたりしているか(想像・推測してみたりして)
とか
627Be名無しさん:2006/02/05(日) 23:55:19
>>624
踏み込んだモノといっても、具体的にどんなものを求めてるの?
チップの制御法ならデータシート見ればいいし、
そういうのはメーカーサイトにPDFでおいてあることが多い。

手取り足取り初心者に教えてくれるような文章って意味なら、
そりゃ皆無に等しいと思う。書籍でなら多少はあるかな?
628Be名無しさん:2006/02/06(月) 12:17:07
今有るものを上手に使いこなした方が面白いと思うけどなぁ。
例えばMacOSXを参考にしてみるのもいいんじゃないかと。

・OSXの基本的な部分。
Machカーネル+FreeBSDユーザーランド。ネットワーク機能はオープンソースアプリで。(Apacheなど)
描画システムにOpenGL、PDF+独自開発部分。データベースにSQLite+独自のフロントエンド。

こういった組み合わせを参考にして出来ないかな。
カーネルは独自開発、ネットワーク機能はBSDを利用しオープンソースアプリを利用みたいに。

・アクロバットでなくてもPDFができるのはなぜ?
http://www.antenna.co.jp/PDF/reference/PDFReference.htm
例えば、PDFを用いたOSXの描画システム↓
などは、PDFの利点を最大限活かした仕様になっている。同じようなものを作るのは不可能じゃない?
低レベルの部分をOpenGLに任せれば、GPU利用も苦にならない。
http://ja.wikipedia.org/wiki/Quartz

サラウンドライブラリならOpenAL、他にもOpenMLみたいな最新の技術とか色々選択肢があるよね。
どんな分野にもオープンソースモノ、標準規格、仕様公開モノが存在していて、どれも日々進化していく。
そういうものを最大限生かすことが出来て、しかもオリジナルな部分の開発に集中出来るという利点がある。

Monaの公式行くと、こんな風に書いてある。↓
>Monaはなるべく過去の負の遺産を引き継がないように努めています。
どうせなら、過去の負の遺産が無いので、最新技術をコアから贅沢に使ったOSを目指す。
とか言って欲しいと思った。

まあ、素人考えだからこんなことが言えるのだろうけどね。<俺がね。
629Be名無しさん:2006/02/07(火) 01:52:25
>>628
既製品流用って結構面倒よ。
I/Fがきちんと定義されてればなんとかなることもあるけど。

Monaは過去の負の遺産がない代わりに未来に借金残してる気もするが、
楽しんでるようだからいいんじゃまいか。
630Be名無しさん:2006/02/07(火) 07:49:45
太郎にとってMona自体負の遺産だけどな
631Be名無しさん:2006/02/07(火) 09:59:38
不良債権は清算しないと損害が拡大する一方
632Be名無しさん:2006/02/07(火) 12:09:56
>>629
まあ世の中POSIXでつから、そこから大きく外れなければ
なんとかなるんでないかい。

uIPのAPIをC#風にラップなんて腹壊しそうな食い合わせより正しい方向だろう。
633Be名無しさん:2006/02/07(火) 14:33:57
POSIX == 負の遺産 == 不良債権
634Be名無しさん:2006/02/07(火) 15:58:02
>>633
strcpyをわざわざString::Copyとかにする方が不良債権化するだろ
635Be名無しさん:2006/02/07(火) 16:33:14
んなこと言ってたら何もできんジャマイカ
636Be名無しさん:2006/02/07(火) 16:45:19
他にはないような独自の機能を作れば独自のAPIも光る。
車輪の再発明と違ってデファクトスタンダードだって狙える。
637Be名無しさん:2006/02/07(火) 16:49:24
>>636
どんな斬新なソフトもPOSIXの上に組まなければデファクトなんて無理
638Be名無しさん:2006/02/07(火) 16:50:48
非POSIXなWindowsがデファクトですが何か?
639Be名無しさん:2006/02/07(火) 16:53:23
>>638
つSFU
640Be名無しさん:2006/02/07(火) 16:55:13
>>639
それ後付けサブシステムだから。
641Be名無しさん:2006/02/07(火) 16:57:47
デファクト目指してOS自作するなんて正気の沙汰ではないな。
趣味なんだからどうでもいいだろ。
642Be名無しさん:2006/02/07(火) 17:56:24
【Mona脳】

Mona == 構造改革OS
POSIX == 負の遺産 == 不良債権
Windowsがデファクト
趣味なんだからどうでもいいだろ
643Be名無しさん:2006/02/07(火) 19:00:47
ここMonaスレじゃないから、続きはこっちでやれや。
http://etc3.2ch.net/test/read.cgi/siberia/1136088527/
644Be名無しさん:2006/02/10(金) 00:21:55
forkの使えるWindowsがほしい
645Be名無しさん:2006/02/10(金) 01:15:44
>>644
windowsタン殺す気か・・?
CreateRemoteThread()とかcygwinとかmigw(できるか?)とか?

てか自スレで完結してろっすよ・・!! (=゚Д゚=)
646Be名無しさん:2006/02/10(金) 06:55:09
てか今進捗どのくらいか教えて
647Be名無しさん:2006/02/27(月) 16:05:02
648Be名無しさん:2006/02/27(月) 16:40:17
649Be名無しさん:2006/02/27(月) 17:58:12
>>647
まじめに勉強するつもりならTanenbaum本か悪魔本を読んだ方がいいと思う。

なんとなく詰め込みすぎな気がする。でもって肝心な部分が落ちてたりとか。
まあ現物を見ないとなんともいえんが。
650Be名無しさん:2006/02/27(月) 18:05:10
>>649
やっぱりその二つですか。
651Be名無しさん:2006/02/27(月) 18:59:27
悪魔本って何ですか?
652Be名無しさん:2006/02/27(月) 21:00:13
BSDの悪魔本じゃね。赤と黒。
Operating System Conceptsってどんな感じの奴?
653649:2006/03/02(木) 17:25:19
読まないで批判するなとか言われたので立ち読みしてきた。
結論は変わらず。

ファイルシステムの話が無いに等しいのはPC用OSの解説としては話にならんと思う。
なんか32bitでマルチタスク+GUIを実現するのに直接関係ない部分が放置されている印象が。
まあOSの定義が違うといえばそれまでですが。

>>652
さいです。
赤の和訳はやめとけと言ってみるテスト。
654Be名無しさん:2006/03/02(木) 18:53:35
EXE動くOSって別に作って良いの?
655Be名無しさん:2006/03/03(金) 02:34:34
ヲッチしてるかもしらんけど、一応。
>>647
http://slashdot.jp/books/06/03/02/034208.shtml

ついでに言うと今月のOSM(3月号)のLinux Kernel解読室で
Linux Kernelの起動の仕組みについて解説があったよ。
656Be名無しさん:2006/03/03(金) 14:11:29
>>653
初心者向けの入門書として考えると良書だと思うけどなぁ。
デバッグの仕方も書いてあるあたりも好感を持てる。

OS本というと、Minix本が必ず賞賛されるのだが、
記述の古さが目立つように思う。

次のステップの本として、
組込みOS構築技法、詳解Linuxカーネルあたりをお勧めしたい感じ。
657Be名無しさん:2006/03/03(金) 14:21:29
>>654
Windowsで動くファイルを動かせるOSを作って大丈夫かって事か?
訴えられたりするんじゃないか?分からんけど
658Be名無しさん:2006/03/03(金) 14:44:49
>>657
EXE、つまりPE形式のことだろうが、例えPE形式を扱うにしろ、
Windowsで動くプログラムを直接そのOSでは動かせない。

何故かというと、システムコールだって違うし、OSの仕組みが違うから。

単純に実行ファイルの格納形式が同じであって、
現実は全く関係が無い。

ただし、Windows用のコンパイラをそちら用に使うことに関してはよく分からん。
659Be名無しさん:2006/03/03(金) 14:49:21
>>658
>ただし、Windows用のコンパイラをそちら用に使うことに関してはよく分からん。
CooSの高橋氏がその辺調べて無問題と判明した筈
660Be名無しさん:2006/03/03(金) 14:53:38
>>657
あぁ但し本当にWindowsで動くプログラムを動かせるOSに関しては、グレーゾーン。

ReactOSがWindows互換OSを作っている。
何か最近開発停止していたみたいだが。
ただこの停止は、Windowsのソースコード流出に関して、
そのコードが使用されているかの検証らしいから、別問題ではあるが。
661649:2006/03/03(金) 16:50:44
>>656
出来上がる物があまり"普通"じゃないのが気になるもので。
そのへんを理解していれば別にいいと思いまふが。

>>660
クリーンルーム手法で開発すれば問題ないんでは。
Reactはその前提が件のトラブルで崩れてしまったと。
662Be名無しさん:2006/03/04(土) 01:01:36
EXE動かすだけなら、適当なOSとWindows方式の動的リンクを解決できるローダーと
WinAPI互換ルーチンがあればいいという考え方もある。
ttp://chiharu.haun.org/peace/ja/

互換OSにくらべれば、やれることに限度はあるけどね。
663Be名無しさん:2006/03/05(日) 15:55:51
C/C++いっさいなし、Javaだけで開発されたOS - JNode
http://pcweb.mycom.co.jp/news/2006/03/03/341.html
664Be名無しさん:2006/03/05(日) 17:54:49
回答ありがとうございました。
又はWindows用に作られたファイルのプログラムをちょっと弄るだけで
動くようになる方法とかがあれば
シェアを取れる日本のOSとかが出来て良いなーとも思います。
これは無理かな?素人過ぎて失礼しました。
665Be名無しさん:2006/03/05(日) 20:36:19
手間を考えると現実的じゃないですな。
666Be名無しさん:2006/03/05(日) 20:46:17
>>664みたいな口だけの奴が多いから、ろくなソフトができない。
667Be名無しさん:2006/03/07(火) 15:53:50
マカのmach-oなんてのもあるね。
compat_darwinネタ?
668Be名無しさん:2006/03/07(火) 18:39:22
(´・ω・`)結局アマゾンじゃHaribote本が何冊掃けとるかワカランがな
669Be名無しさん:2006/03/12(日) 20:15:29 BE:688632487-
質問
UNIXってCで作られたOSって聞くんですけど、起動部分もCですか?

あと、もし起動部分もCなら、
いまx86バイナリ(起動可)が出せるCコンパイラってありますか?


駄問スマソ
670Be名無しさん:2006/03/12(日) 20:34:12
言語の事、もうちょっと勉強しような。
671Be名無しさん:2006/03/12(日) 20:43:47 BE:516474667-
やっぱりアセンブラじゃないとだめでしたか。
がんばってアセンブラ習得してきます。
672Be名無しさん:2006/03/12(日) 21:18:08
アセンブラで書かれてるわけじゃなくて、最終的には機械語でしか解釈されない。
それにもっとも近いのがアセンブラで、ある程度人間にも理解しやすくしたものがC言語。
673Be名無しさん:2006/03/14(火) 04:25:31
Itenium,PowerPc,Sparc の3種類で動くOSを
一発で書きたいんですが、なんとかなりませんか?
仮想アセンブラを想定して、そこから3種類に
吐き出そうと思ってるんだけど、アセンブラって
そんなに違うんですか?遅くてもいいから基本的
な命令だけを使おうと思ってるんですが。
674Be名無しさん:2006/03/14(火) 07:40:17
ブートセクタで分岐してその後別々に動くなら、昔、86系と68系
どっちでも(PC-9801とX68K)起動するディスクとかあったけど、
ソース全域共有するとなると大変だと思うぞ。

ハード依存の部分以外は無理すりゃ出来んこた無いと思うけど、
Cに比べてメリットあるかなー
つーかよく考えたらCって多CPU対応の仮想アセンブラの一種だよな…
675Be名無しさん:2006/03/14(火) 08:44:26
どこがC言語で書けなかったかのか、
最後に教えてくれるだけでも助かる。
C言語自体を、もっと細かく拡張してみるよ。
幾らなんでもアセンブラより短くなるでしょ。
676Be名無しさん:2006/03/14(火) 10:11:42
俺VM作って、その上で動かす。

どんなに頑張っても言語レベルで吸収できない部分があるのですよ。
まあ、そのへんの隠蔽をコンパイラに押しつければ、見た目は共通になるが。
677ぴゅあ:2006/03/15(水) 01:44:50
> 昔、86系と68系 どっちでも(PC-9801とX68K)起動するディスク
私は残念ながらこの存在は知らないですけど…
私もかなり大変なことだと思いますよ。

> Itenium,PowerPc,Sparc の3種類
ってことですけど、それぞれに共通の命令セットを作り出すとしても、
その仮想アセンブラ(?)を作り上げようというところからして大変そうな・・・

これらはそれぞれがプロセッサですよね?

それぞれの命令セットから拾い上げて新たな命令セットが作リ出せたとしても、
まずアセンブラとしてはそれぞれに作らないといけなくなるんでしょう。
そして恐らくどうしてもプロセッサ固有の部分が出てきてしまったりするんでしょう。
でもって、それらプロセッサがあっただけでは無理な筈。
動かすマシンとなるものは、それぞれに既存のものを使ったりすることになるのでしょうし、
それらハードの違いはどうするのか。

中核になる部分をアセンブラにしたいんだ!としても、
下層の部分はどうするんだ?というところになって…
確かにVMを作るとかいうことも考えられたりするのでしょうけど、
「アセンブラにしたい」というところで、アセンブラからイメージされるようなところを
引き出したいということだったりもするのでしょうから、
それが引き出せるのか?ということにもなったりするんではなかろうかと思ったりです。

仮想アセンブラとかを考えたりするくらいなら、
既存の高級言語を使った上でOSとしてどういうものを作るかとか、
或いはOS開発向けの言語として新しい言語を考えてみるとかの方がよさそうにも思えたりですけどね。
678ぴゅあ:2006/03/15(水) 01:46:17
もひとつ

>675
> どこがC言語で書けなかったかのか、

誰が誰に聞いているのか判らないところですが・・・

C言語で書けない可能性があるのはmain関数に来るまでの
スタートアップルーチン(と呼んでた筈?)の前半にあたる部分になったりするでしょうね。
(書けなくはないだろうけど(OSによると言えると思う)、恐らくCで書かない方が楽だったりするんでしょう)

普通にコンパイラを使っているときには目にすることも少なかったりするものと思いますが、
大抵OSの違いをここで吸収する最初の部分になっているでしょう。
679Be名無しさん:2006/03/15(水) 02:27:04
>>673
main(){for(;;){}}
↑これをOSにして、それを動かすアセンブラを各CPU用に書けば良いんジャマイカ
680Be名無しさん:2006/03/15(水) 07:17:50

オーエスー!オーエスー!オーノー?
681Be名無しさん:2006/03/15(水) 11:26:15
>>677-678
OSを作るということであれば、命令セットの差なんて些細な問題でつ。
それ以外のアーキテクチャに依存する部分をどうやって抽象化するか…
んで、その問題に対する(たぶん)現実的な解答がVMで隠すということでつ。

初期化処理はOSを起動したいのか、アプリケーションなのかによって話が変わってきますな。
OSの場合はどう頑張ってもCで書けない部分がでてくるので、インラインでもいいけど
アセンブラ必須でつ。
アプリの場合は、OSがある程度初期化してくれるという前提でCだけでも書けまふ。

まあ、とりあえずの課題としてHariboteOSを非AT機に乗っけるなんておもろいかもしんない。
あれはちょいと頑張ればどこに持っていっても動くはず。

しかし、夢があってよいことですなあ。
頑張って勉強しとくれ。
682Be名無しさん:2006/03/15(水) 22:53:39
>>681
EFIだとCだけで書けたりしないかな?
最も、EFIの使えるBIOSは全然普及していないが。
683682:2006/03/15(水) 22:54:36
さすがにタスクスイッチなど、無理な部分はあるか。。
684Be名無しさん:2006/03/15(水) 23:28:51
>>682-683
あーEFIならいけるかもしれない。

コンテキストスイッチなら、コンパイラで割り込み関数書ければどうにでもなりまふ。
といっても中身を共通化するのはほぼ不可能ですが。
685Be名無しさん:2006/03/17(金) 23:34:32
OS自作入門って本が売ってたよ。
お金なくて買えなかったけど。
686Be名無しさん:2006/03/19(日) 15:50:42
っつーか、Wineをそのまま軽いLinuxに詰めてOSにすればEジャマイカ
687Be名無しさん:2006/03/19(日) 16:01:58
ぜひ作って配布してくれ。


…とlinuxを軽くしようとして挫折した俺が言ってみる。
688Be名無しさん:2006/03/20(月) 13:34:31
みんな、EFIとか言葉ぐらい知ってるレベルでも、さぞ俺は詳細まで知ってるんだみたいな
書き方しやがって。ちなみに、俺は言葉しかしらん。
689Be名無しさん:2006/03/20(月) 14:00:55
>>686
どっちかてーとXの方が重いような気がするでよ。

まあメモリ管理なんかもすり合わせるに苦労していたはずなので、
そのへんもWineにあわせたOSを作ってしまうのが一番かもしれない。

そうするとReactOSになるような気がしないでもないが。
690は@ c178.016.c3-net.ne.jp ◆cplnFO9T0I :2006/03/20(月) 15:01:32 BE:322790988-
>>689
ReactはデバイスドライバーまでNT4.0と互換性のある奴にするって言うプロジェクトです。
でもWineに特化したLinuxディストリビューションというのも結構面白そうですね。
691Be名無しさん:2006/03/20(月) 23:03:58
>>688
wikipediaでEFI(コンピュータ)を見ればなんとなくわかる
692Be名無しさん:2006/03/21(火) 11:38:21
>>691
うぃきwww
693Be名無しさん:2006/03/27(月) 19:23:24
ブートセクタがかなり面倒・・・
694Be名無しさん:2006/03/32(土) 14:58:07
3/32記念
695Be名無しさん:2006/04/06(木) 00:54:37
http://www.personal-media.co.jp/book/tron/229.html

上記の本を基準にOSを開発することは可能ですよね。
Java言語を使って開発することも可能ですか。

よろしくお願いします。
696Be名無しさん:2006/04/06(木) 10:06:54
>Java言語を使って開発することも可能ですか。
という疑問を持つレベルでは無理。
697Be名無しさん:2006/04/06(木) 10:25:57
>>695
>Java言語を使って開発することも可能ですか。

たしかPart2の時にもそんな奴いたよな
698Be名無しさん:2006/04/06(木) 10:41:02
699Be名無しさん:2006/04/06(木) 14:24:03
DIO に無視されたのであればあきらめます。

失礼しました。
700Be名無しさん:2006/04/06(木) 14:31:34
700get!!
701氏天国:2006/04/06(木) 14:48:56
   
WindowsXPマグナム600
702Be名無しさん:2006/04/06(木) 22:06:53
相変わらず何の進展もないスレだな
703Be名無しさん:2006/04/06(木) 22:10:25
このスレ名物のIPLはK本に喰われちまったからな
704Be名無しさん:2006/04/07(金) 12:10:44
>697
ヒント:ひげぽん
705Be名無しさん:2006/04/07(金) 17:18:53
>>704

途中まで読んで挫折。
記事おおすぎ。

勉強になるのでじっくりと読んでいきます。
706Be名無しさん:2006/04/09(日) 14:51:48
>>703
Intel MacのEFIで起動できるIPLはまだ未開拓ですよ!!
707Be名無しさん:2006/04/09(日) 14:55:04
>>706
Boot Camp入れればEFIに対応しなくてもIntel Macで動く
むしろ問題はPS/2がないこと
708Be名無しさん:2006/04/09(日) 18:52:27
>>707
GPTから起動できるIPLってこと
せっかくEFIという良いものがあるのに
古き悪しきBIOS使うのはもったいないよ
4つしかパーティション切れないしセクタ0が死んだらHDD即死だし
709Be名無しさん:2006/04/09(日) 21:46:28
>>708
GPTを使ったら窓と共存できなくなるので時期尚早
710Be名無しさん:2006/04/09(日) 21:46:53
もう萌えOSを作る輩はいないのか
711Be名無しさん:2006/04/09(日) 21:51:22
めぐたんがあるじぇりあ
712Be名無しさん:2006/04/09(日) 21:51:54
>>709
そんなもん両方作るだけだろ
713Be名無しさん:2006/04/09(日) 22:37:28
>>712
君が作りたいなら作ればいいだけ
GPTやEFIが素晴らしいからと他の人に期待しても
どうせ使わない品って話になるってこと
714Be名無しさん:2006/04/09(日) 22:44:01
VistaはGPTくらいサポートするだろ
715Be名無しさん:2006/04/09(日) 22:53:21
>>714
GPTは知らないがEFIには対応しない
716Be名無しさん:2006/04/09(日) 23:01:06
Windowsの話にすりかわっているが
元々IntelMacの話なんだからWindowsなぞ論外
717Be名無しさん:2006/04/09(日) 23:13:25
Boot Campが出てきたことからして、
アップルが現実に妥協せざるを得なかったことは自明。
718Be名無しさん:2006/04/09(日) 23:23:11
まああれだ、昔95とNTを共存させて、普段はNTを使って、
ゲームのときだけ95を起動したのと同じようなもんだ。
719Be名無しさん:2006/04/10(月) 22:25:26
WinだとかAppleとかは
このスレにはどうでも良いことだとおもうんだが

そういう話題しかない時点でこのスレ終わってるな
720Be名無しさん:2006/04/10(月) 22:39:26
タイトル負けしてるな
721Be名無しさん:2006/04/10(月) 23:48:00
そもそも、このスレで生まれ
志半ばで消えたOSはいくつくらいあるんだ?
722Be名無しさん:2006/04/11(火) 00:41:28
>>706
GURBの人ががんばっとるので、とりあえずMultiboot specificationに
対応しとけば、なんとかなるんでないかい。
723722:2006/04/11(火) 00:42:50
うがtypoした。
s/GURB/GRUB/
724Be名無しさん:2006/04/11(火) 01:19:21
「ガ〜ブ」
「メイ」
「私たち秘密の友達ですよね!」
725Be名無しさん:2006/04/11(火) 03:34:09
このスレ名物のIPLはFDブートオンリーなわけだが。
726Be名無しさん:2006/04/13(木) 21:08:24
最近はSGIのUNIXワークステーションを使いたいが。
これに比べりゃきっとマクもドザも屁みたいなもんだろうな。
727Be名無しさん:2006/04/13(木) 22:47:24
IRIXでつか。
優雅でよいですな。
728Be名無しさん:2006/04/18(火) 10:01:55
「30日でできる!OS自作入門」を読んでOSを作りたくなったけど、
何の為に作るのかってのが問題で、一歩を踏み出せない・・・。
729Be名無しさん:2006/04/18(火) 12:56:33
まあWindowsが無料で軽くて小さけりゃ、作る必要ないんだけどなあ…
730Be名無しさん:2006/04/18(火) 23:39:43
>> 728

729さんの発言に載るつもりで作成開始ですかね。
731Be名無しさん:2006/04/19(水) 04:00:56
現在Mindowsの製作中です
732Be名無しさん:2006/04/19(水) 14:28:40
PC向けのOSは、今からじゃ厳しいなぁ、
DOSやwin3.1の時代なら、マイクロソフトに追い付けたかも知れないが。
733Be名無しさん:2006/04/19(水) 14:32:38
どうして?教えてエロイ人!!
734Be名無しさん:2006/04/19(水) 15:20:41
MSDOSは、ファイルシステムと糞メモリ管理が主体で、
あとはオマケのようなものが付いてるだけだから、
ある程度、専門的な知識があれば一人で十分作れるよ。

Win3.1はちょっと厄介だが、APIの数が少ないので、
少人数でも十分作れる気がするが、
16bit仕様のWindowシステムは、かなり苦労しそう・・・。
735Be名無しさん:2006/04/19(水) 15:33:08
736Be名無しさん:2006/04/19(水) 16:20:59
http://ex14.2ch.net/test/read.cgi/news4vip/1145429729/

  ( ゚д゚)     
_(__つ/ ̄ ̄ ̄/_ 
  \/    /
     ̄ ̄ ̄
 
  ( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_ 
  \/    /
737Be名無しさん:2006/04/19(水) 17:12:11
>>736
夢タソかな?
頑張ってるねー
もしかしてobjcもやってるとか?
http://pc8.2ch.net/test/read.cgi/tech/1106983092/452
738J:2006/04/21(金) 01:55:19
なんかJAVA & asmで作ったOSというのがあるゾ
http://www.jnode.org/
試してないけど・・・
739Be名無しさん:2006/04/21(金) 11:07:42
>>738
JavaVMはどうしたんだろう?
自分で作ったのかな?
740Be名無しさん:2006/04/21(金) 11:27:02
>>739
オプソなんだからソースを見れば良いかと。
741chaopon:2006/04/28(金) 15:35:34
玄箱使ってPowerPC用のOS作りに挑戦してみようかな。来週の連休あたりから。
PPCだとPC/ATのBIOSにあたる部分の仕組みがよくわからないんだよなぁ。
それに表示系はシリアルポート経由になるだろうけど玄箱には、外部的に
シリアルポートがないんで箱開けて内部のpinから伸ばさないといけないっぽ。
ハードの知識も要りそうだ。
それにPC/ATと違って出力はシリアル経由になるだろうしその辺を調べないと
"hellow world"さえ出来ないね。
742Be名無しさん:2006/04/28(金) 22:52:32
918 名前:903[] 投稿日:2006/04/28(金) 20:57:06 ID:OS/GNUoL
ホムペでは「予定日より遅れる見込み」だったけど、
今帰ってきたら運送会社の不在連絡票があった。
予定より5日早くきたんだね。
早速、再配達依頼出すぞ!
743政府が:2006/04/28(金) 23:07:26
 
【IT/政治】日本政府、「世界最高水準のセキュリティー」の次世代OS開発着手へ
:Winny被害に対応[06/04/29]
http://news19.2ch.net/test/read.cgi/newsplus/1146231538/l50
744Be名無しさん:2006/04/28(金) 23:49:43
Σの臭いがする
745Be名無しさん:2006/04/29(土) 09:43:51
OS作ってみたいのですけど
初心者はまずここを読めって所
ご存知でしたら教えてもらえませんか?
746Be名無しさん:2006/04/29(土) 11:53:26
>>745
それすら調べられないなら、諦めたほうがいいよ。
747Be名無しさん:2006/04/29(土) 12:21:46
>>745
ターゲットは?
目標は?
748Be名無しさん:2006/04/29(土) 18:37:46
>>747
ターゲットも目標も同じ意味では。

ちなみに、私個人の意見としては、
ターゲット → 敵
目標 → 女性
749Be名無しさん:2006/04/29(土) 18:47:31
ターゲット=機種
目標=どこまで作りこむか

750ぴゅあ:2006/04/30(日) 01:56:16
target→標的
aim→目標(目指すところ)
とか

ま 「ターゲット」も「目標」も単語並べてるだけで
何を指しているか明確になってないし
どうにでも取れるし

てか
> ターゲット → 敵
> 目標 → 女性
が言わんとするところは私には難解だ。。。

なんて話はどうでもいいか・・・

>>745
まずは「OSとは何か」とかからでも?
でないと(かどうかは判らんけど)、
アプリ作ってんだかOS作ってるんだか
よく判らんということもあったりでしょう(?)

数日前、
平気でとんでもないこと得意げに言ってる方
見かけたり・・・
751Be名無しさん:2006/04/30(日) 16:51:07
とりあえずOS自作入門って言う本買ってきた。
今は読み物として読んでる。
本気でやったらライフワークになりそうな濃厚さですね…OSって
ぼちぼち知識蓄えていきます…
752Be名無しさん:2006/04/30(日) 17:07:42
>750
でも逆に、

・簡単なアプリ作る
→何とかOS使わずに起動するようにしてみる
→アプリ用のプラグインを作れるように
→プラグインで出来ることを増やしていく
→いつのまにかOSっぽく

…みたいのも有りじゃね?

最初からOS作ろうとしても、すぐ報われない作業ばっかりで飽きると思う。
753Be名無しさん:2006/04/30(日) 17:14:49
http://www.amazon.co.jp/exec/obidos/ASIN/4774125121/qid%3D1133775518/249-4217143-9801126

見当違いですかね。

ソースコードが短いように思えるので、理解できるようになりやすいかと・・・。

本当に短いのかどうかまではわかりかねます。
754Be名無しさん:2006/04/30(日) 21:36:28
>>752
Linuxも最初は端末エミュだったそうですね。
>>753
リンク間違ってないか?
755Be名無しさん:2006/05/02(火) 14:59:50
>>754

・・・発言しにくいのですが、間違いではありません。

ブートのことを勉強できるかと思って・・・。


無理ですかね。
756Be名無しさん:2006/05/02(火) 15:01:42
無理

くあしくは詳解linuxカーネルでも嫁
757Be名無しさん:2006/05/02(火) 19:00:38
>>755
>>753って「Linux ソフトウェアアンテナ」のリンクだよね?
本を読んだわけじゃないが、目次を見たところブートまわりのコードは掲載されてなさそう。
758Be名無しさん:2006/05/02(火) 20:19:03
>>757

一応中を見ましたが、ソースコードが書いてあったので、それをいじればと思いましたが、ブートではないソースコードという意味ですね。

ご迷惑をば
759757:2006/05/02(火) 20:32:40
>>758
書名と目次だけで判断してた。本の中読んでないんで役に立つコードか俺は判断できない。
大変失礼致しました。
760Be名無しさん:2006/05/02(火) 23:16:44
>>759

いえいえ、私もプログラミングの勉強をしているとはいえ、ソースコードを見て判断できるほどの知識を持ち合わせているわけではありません。
混乱させて申し訳ありません。
761Be名無しさん:2006/05/02(火) 23:52:01
はじめての486→SunriseOSでもチマチマ解読でおk
次にごく初期のLinuxコードを解読してけば、ある程度の知識はつく。
それからタネ本でも読めば、自作OSも夢ではない。

邪道だけど、「自作OSつくったよ。俺すげーよ。」って自慢をしたいだけなら、OS自作入門で十分。
もれなく印税のうちいくらかは学会にry
762Be名無しさん:2006/05/02(火) 23:54:00
じゃあ僕は3番目で
763Be名無しさん:2006/05/03(水) 04:30:28
>>762

同意
764Be名無しさん:2006/05/03(水) 14:48:47
>>761
>もれなく印税のうちいくらかは学会にry
これってソースあんの?
765Be名無しさん:2006/05/03(水) 14:52:34
NHK層化放送局のtron関連番組を真に受ける人は、学会という言葉に敏感ですね
766Be名無しさん:2006/05/10(水) 12:13:04
こんなんみつけた
ttp://nxdos.sourceforge.net/

FDイメージ欲しいな。
767Be名無しさん:2006/05/14(日) 22:21:18
やねう師匠大変なことになってたね…
768Be名無しさん:2006/05/15(月) 07:22:04
>>767
週末は祭り状態だったね
769Be名無しさん:2006/05/15(月) 17:39:09
祭りは終わった

結論
・大団円
・師匠は会社畳む
・ryokoと美人嫁と横谷絵里奈はネカマだった
 以上
770Be名無しさん:2006/05/15(月) 22:32:48
>・ryokoと美人嫁と横谷絵里奈はネカマだった

kwsk
771Be名無しさん:2006/05/15(月) 22:44:41
>>770
ryoko --> http://pc8.2ch.net/test/read.cgi/prog/1147489445/
美人嫁 --> そもそもネットに出てないのでガセ
横谷絵里奈 --> http://pc8.2ch.net/test/read.cgi/os/1112667480/
772Be名無しさん:2006/05/16(火) 11:30:36
>>771
ネカマはガセだが美人はガチ
773Be名無しさん:2006/05/18(木) 03:34:20
逃げちゃダメだ逃げちゃダメだ逃げちゃダメだ
774Be名無しさん:2006/05/18(木) 09:29:35
Faint heart never won fair lady.
775Be名無しさん:2006/05/21(日) 20:19:00
よし、
OS=スイッチ入れたら自動的に何かやってくれるソフトウェア
という定義に基づいてOS作ります。
776ぴゅあ:2006/05/21(日) 21:07:09
うーん・・・
何かやってくれるんではなくて、
何かやれるようにしてくれるものを指すと思ったりしますけどね。

何かやってくれるソフトウェア=アプリケーション
のように思ったりです。

(勝手に?)定義するのはいいけど
定義してしまっていいのかどうか。。。

ロボット工作掲示板で似たような話見て
うーん。。。と思ったけど…
777Be名無しさん:2006/05/21(日) 22:30:43
>>775
目的動作が含まれてるものはOSとは言わない
単なるアプリ
778Be名無しさん:2006/05/21(日) 22:55:49
>>775
OSとかアプリとか気にせず
作りたいもの作ればよいとおもうよ
779Be名無しさん:2006/05/22(月) 10:50:18
電源入れたら文章が書けるようになるOSプリーズw
780Be名無しさん:2006/05/22(月) 11:31:46
>>776
別にいいんじゃないかい。
K本も俺定義だし。

>>779
ワープロ専用機ですか。
781775:2006/05/22(月) 15:38:28
ブートセクタだけ作った。


。。。それだけ。
とりあえず本でも買って勉強してみます。
782775:2006/05/24(水) 17:58:08
フルスクラッチはやめて
Linux使う。
783Be名無しさん:2006/05/28(日) 20:53:31
今日、自作OS入門買いました。
パラパラと見たけどハードウェアのチェックの仕方とか書いてないのな。
がっかりだ。orz
784ぴゅあ:2006/05/29(月) 10:08:19
>>783
自作…っての辺りがなんともだったりだけど・・・
どんな本かも知らないけど、そういうもんだったりでは?

OSとしての解説となってくるとハードウェア(による違い)はデバイスドライバの先に隠れてしまうんでしょう。
「入門」と付いてたりするのもちょっとひっかかったり(?)

ハードウェアに近付くには「自作デバイスドライバ(入門?)」とかだったりするとか(更には(載せようと思っているファームに合致した)実例コード付き?)
それでも「デバイスドライバとはこんなもん」という感じで期待したいような
> ハードウェアのチェックの仕方とか
には程遠かったりしてそうな。。。

OSとして解説するとき、ハードウェアはデバイスドライバとかで共通化のようなことをされた後とかとして、
構成はどうなっている(どうする)のかとか、システム全体として管理する仕組みとかの話が中心になっていってしまうような感もあるし、

デバイスドライバを解説するときは、デバイスドライバとはこんなもんで、
ハードウェアに関してはそれに合うようにそれぞれ考えてみてね
とかいうような感じになってしまうんだろうと思ったり。
(DOS/V機とか流行るようになってからのことか、全く同じ機能のハードでも「意図的に?」と思えたりしてしまうような微妙な差がそれぞれにあったりするみたいだし、「これ!」というのは解説しにくいんじゃないか?という気もしたりする)

> ハードウェアのチェックの仕方とか
が欲しいと思うのなら、デバイスドライバの作り方+対象としたいハードの解説本(…から考える)とか、実際にそのハードで動いているOSのコード(主にデバイスドライバ…その下層の方)から知るとか、その解説本はないかとかいうことになってしまうんでしょうねぇ。
こういったところは運良く合致するのがあればラッキーだけど、そのままズバリというのはなかなかないもんであると考えるのいいのかも?
785Be名無しさん:2006/05/29(月) 11:20:48
>>783
あの本はOSのようなものを作るために最低限必要な情報しか載ってないので、
そういうのが知りたければPC/ATのハードウエア解説書を買った方がよろしいと思われ。

>>784
あの本にデバイスドライバなんて概念は存在しない。
786Be名無しさん:2006/05/29(月) 17:51:44
osaskって名前じゃなければ使ってみても良かったんだけどな。
意味わかんねぇし、ダセーし。
もっとスマートな名前は思いつかんかったのか。
オとサって一緒にすると名前のインパクトが微妙なんだよな。
スサノオなら使っても良かったと思う。税金無駄にすんなボケ!
787Be名無しさん:2006/05/29(月) 18:37:36
>スマートな名前
NOWSMART
788Be名無しさん:2006/05/29(月) 18:52:29
>スサノオなら

乱暴な男が好みなら
つ ジャイアンクス
789Be名無しさん:2006/05/29(月) 19:57:34
クスはいらねぇよクスは。
つジャイン
790Be名無しさん:2006/05/31(水) 22:07:26
OSAKSって名前はダサいけどGUI搭載は魅力的だよね。
でも作るのは楽しいけど、使って楽しい物では無いな。
791Be名無しさん:2006/06/02(金) 05:19:57
OSじさくぬうもんに、この本で作っているOS「張りぼて」と
OSASKの特徴として容量が小さいことが上げられている。
OSのサイズとかは10年前じゃないんだからどうでもいいんだけど…
792Be名無しさん:2006/06/02(金) 07:58:13
程度問題だろ。
少なくともADSLでCD1枚分落とす気にはなれんよ。
最近のlinuxとか、1枚どころか数枚当たり前だしな。
793Be名無しさん:2006/06/02(金) 16:59:44
>>792
メモリが2MByteとか4MByteとか言ってる世界ではそれなりに重要な事ですよ。
まあx86じゃないけど。

>>793
肝な部分だけならCD一枚で余裕だと思いまふが。
794793:2006/06/02(金) 17:01:04
あ、一個ずれとるな
>>791>>792
795Be名無しさん:2006/06/02(金) 17:21:52
>>792
いまだにCD1枚でがんばっている Vine Linux はえらい。
796Be名無しさん:2006/06/02(金) 20:02:26
OSASKって実はこういう事?
OS
ASK
ASK.jpのOSだからOSASK!?
797Be名無しさん:2006/06/03(土) 00:24:16
ダビンチやフォンノイマンの脳回路をそのままアーキテクチャー化できれば
最強でしょ。前者は少年愛という重大なセキュリティーホールつきだが。
798Be名無しさん:2006/06/03(土) 04:20:53
>>797
君の脳に重大なセキュリティホール(電波アタックに対する脆弱性)が発見されました。
最悪の場合、バッファオーバーランによりありもしない情報を受け取り、他者を混乱させることがあります。
ただちにオカ板あるいはメンヘラ板にて対応パッチをダウンロード・実行して下さい。
799Be名無しさん:2006/06/03(土) 14:24:21
>>797
俺にとってそれはセキュリティホールではない
800Be名無しさん:2006/06/03(土) 14:33:26
800げとktkr
801Be名無しさん:2006/06/03(土) 14:34:17
>>799
おやおや、早速バッファオーバーランでアンカーがずれたようですが?
802Be名無しさん:2006/06/03(土) 14:41:04
>>801
オーバーランしてるのはおまいの方だろ
>>797!=>>799だということは>>797が上げ厨だってことから明らか
803Be名無しさん:2006/06/03(土) 15:47:08
相変わらずの駄スレっぷりだな
どのへんがOSを作ろうなのかさっぱりわからん
強いて言えばOSを語ろうってところか
804Be名無しさん:2006/06/03(土) 15:59:23
このスレのメインテーマだったFDブートIPLは川合本で一網打尽だからな
805799:2006/06/03(土) 20:46:48
おいこらおまいら何いってやがる
俺は普段ロムってるVB(6.0)しか使えないやつだよ
797じゃねーよ

少年愛で何が悪い
806Be名無しさん:2006/06/03(土) 21:00:30
>>805
おまいが良ければそれでいいよ。
・・・だがそれはここで話すことじゃない、他の板に逝け。
気が済んだろ?
807Be名無しさん:2006/06/03(土) 21:07:26
>>804
思えば何人もの厨がFDブートIPLやA20やプロテクトモード遷移や
キーボード制御で挫折して帰らぬ人となったなぁ
808Be名無しさん:2006/06/03(土) 21:08:48
たが川合本でバカな厨がry
湾岸とか
809Be名無しさん:2006/06/04(日) 15:31:28
 こんなOSが欲しい。

1. 独自OSとして起動し、他のOS(WindowsやMac、Linuxなど)をその上で複数起動、
 スムーズな切り替えが出来るOS型VM Ware。各OSのHDDは1ファイルとして圧縮保存。
 このOSから中身を見ることが出来る。また、データディスクとして、複数OSからアクセス出来る、
 共有ディスクも設定可能。現在のPC性能から考えれば、多少ネイティブなものより性能が落ちても、
 1年前の一般的なPC以上の性能になりそう。

2. ソフトウェアのインストールが、すべて"イメージディスクのマウント"によるもので、
 イメージディスクをアンアマウント、削除のみで綺麗にアンインストール出来るOS。
 追加で増えていくデータは、イメージディスク内か同フォルダ内に追加され、競合しない。
 Pathはそれぞれの起動アプリケーションごとにrootを設定する。
 OSが提供するメソッドやデータはすべて読み取り専用。変更が必要な場合は、イメージディスク内に用意する形でプログラミング。
 Windowsのレジストリ非依存性アプリ、Macの一部アプリみたいに。
810Be名無しさん:2006/06/04(日) 16:15:58
んなもん欲しいのは厨房だけ

OSASKの開発でも手伝ってろ
811Be名無しさん:2006/06/04(日) 16:54:39
AM/PMっていうコンビニにあるんじゃね?
812Be名無しさん:2006/06/04(日) 19:27:17
>809
1.については今回日本政府が発表した新OSが合致します。
VM上でWinを動かしてWinやネットなどから送受信される情報を一旦VMが動いているOSが受け取りにゃんにゃんするそうです。
813Be名無しさん:2006/06/07(水) 21:38:50
すみません。
OS作っている方に質問です。
割り込み関数を作る際のデバッグの方法って、なにかありませんか?

現在、キーボードが入力されたときに呼び出す関数を作成しているのですが、うまくいきません。
どうもキーボードの割り込みが発生した際に、メモリ上の関数のある場所にジャンプせず、どこか別の場所にジャンプしてしまっているようです。
キーボードの割り込みが発生した際にメモリ上のどこにジャンプしているとかわかると非常にデバッグが楽だと思うのですが、何か方法は無いでしょうか。
やはりコードを読んでいくしかないんですかね?
814ぴゅあ:2006/06/08(木) 12:12:55
>>813
私はデバッガとかまず使わないし、一般にプロの間で常識と言われるものとは全く違う手順でコードを書くので参考にはならないかもですが。

> どうもキーボードの割り込みが発生した際に、メモリ上の関数のある場所にジャンプせず、どこか別の場所にジャンプしてしまっているようです。
どの段階まで進んでの話なのかが判りませんけど、まず、メモリ上の関数とは何を指しているのか。かな?
割り込みが発生した時点での割り込み処理ルーチンへ飛んでないのか、
割り込み処理ルーチンへ飛んでから(その問題となる関数が呼び出される以前に)何処かに行ってしまってるのか、
割り込み処理ルーチンの中で呼び出そうとしている(或いはその後の)関数で何処かに行ってしまうのか。

判断はできていたりするんでしょうか。(「どこか別の場所にジャンプしてしまう」ではなくて「ようです。」という表現になっているし)
書いている言語は?というのも関わってくるかも知れませんけどね。

「キーボードからの割り込みルーチンのコードを書いている」というところくらいしか判らないので聞いてみるわけでもありますけど、
「どこか別の場所にジャンプしてしまっているようだ」に対する「それは何処か」を知るというようなことの前段階のものとして、
「期待するその場所に来ているか」ということを確認できる仕組みは準備されているのでしょうか。

それは例えば文字を表示するルーチン。
それは大抵、その場で動作確認もできるでしょうから(というよりそのように作る)、
確実なものにしておけば、動作確認とかにも力を発揮する筈です。
例え文字を表示するような直接意思を示せるようなコードでも、正しく動くように作れていなければ何処かへ飛んでいってしまいます。
(例えばプロテクトモードではセグメントレジスタに入れられたセグメントセレクタが不正だったとかでも)
815ぴゅあ:2006/06/08(木) 12:17:31
長いか。。。失礼

仮に割り込み処理ルーチンへ飛んできているのかどうかが判らないというのだとすると、
その頭で何かの文字を表示するルーチンを呼び出し、無限ループで止めてしまう。
そのときには、NMIも含めて止められる限り全ての割り込みを無効にするようにするとかいうのもやっておくべきでしょう。
例えばCとかで書いているとすれば、問題箇所を突き止めるのは少しめんどくさくもなるかも知れませんけどね。

「そこに到達している」ということが確認できたということは、
「"どこか別の場所にジャンプしてしまっているようだ"ではない」ということが確認できたということになると思いますけどね。

まぁ、原始的でしょ?
でも、やれデバッガだ、ICEだとか言わなくても十分に役立つものだと思いますけどね。
Win上とかでBochsとか?を使って動かしてみているんだとかいうことなら、恐らくそれの上で色々できるんでしょうから、
使いこなせればもっと簡単だったりするということにもなったりするんでしょう。
が、もしそうなら質問の仕方も違ってきてるのでしょうね。
816ぴゅあ:2006/06/08(木) 12:18:38
続けて長いの3つもとは申し訳なくも思いますが。。。

> やはりコードを読んでいくしかないんですかね?
コードを読むというより、何をやろうとしているか/起こり得るのかということとかを理解し、意識してコードを書くことなんでしょう。
ただコードを読む(或いは眺めてる(?))のでは無駄に時間が掛かるだけだったりもするんでしょうね。
「そこに到達している」か?を確認するとかいう手間は、余計に時間が掛かる(ことが明白に見える)作業ですけど、
その余計な作業で費やされる時間は、期待通りの結果が得られなくて試行錯誤(というより格闘?)する(結果的な)時間に比べて短い時間になる場合の方が多いように思えたりです。
確実になったと確認できた部分はそれ以降頭から外しておけるでしょうし、
確実なものとしようとした分、シッカリとそのコードが把握できているでしょう。
それはサブルーチンといったような形だと更に有効となるでしょうね。
また文字を表示するルーチンは、メモリダンプの機能を持たせるとかして、
飛ぼうとするアドレスが正しいものか?といったようなことの事前確認にも役立つ筈です。

問題となる場所がちゃんと絞り込められれば(それは既にできているのかもですけど)、"コードを読む"とか言ってもその範囲はかなり限定される筈?
817Be名無しさん:2006/06/08(木) 12:55:53
>>813
俺もよくやるな、ポインタ演算子やアドレス演算子をつけたり、つけなかったりするミス。
818ぴゅあ:2006/06/08(木) 13:48:34
>>817
そりゃあ可愛いもんでないの?

コンパイル通らんからと、やたらと(闇雲に…の方が適切か?)キャストしまくって
コンパイル通った!…が、動きが変
とかいうのが、Cが解るのが居らんと言うのを多く聞くようになったプロの世界ですんごく増えてたりするのに比べても。。。(−−;
819Be名無しさん:2006/06/08(木) 13:58:19
プログラムが書けない奴に説教されてもな。
820Be名無しさん:2006/06/08(木) 14:05:25
アセンブラから入ると、Cの変数型チェックの厳格さは地獄だったりする。
821Be名無しさん:2006/06/08(木) 14:30:41
Rubyから入っても、Cの変数型チェックの厳格さは地獄だったりする。
822Be名無しさん:2006/06/08(木) 14:40:58
ここはインテルアーキテクチャに命を捧げた人たちの墓場ですか?

ポインタにfarがつくような言語仕様は逝ってよし
823Be名無しさん:2006/06/08(木) 15:29:41
昔SUNの構想してたネットワークコンピューターが現実的になりつつある。
今YouTube見たいなFlashで配信してる動画サイトが流行ってるし、もうすぐGoogleがネットワーク上で動く表計算ソフトを公開するそうだ(Ajax?)

一般的な活用法のブラウジング+メール+ワープロ+表計算+動画音楽再生等は全部インターネット上で実現できるようになる、
つまりOSに依存しない新しい時代が確実にやってくる、未来ではOSは機能が減ってインターネットと個々の機械との橋渡しに過ぎないものになるかもしれない。

今インターネット上で動作するワープロとかその他ツールを作っておけばそのうちでかいビジネスになるかもしれない、
俺はやってみようと思う。



824Be名無しさん:2006/06/08(木) 15:32:05
よく落ちるような2ちゃん鯖では絶対に提供して欲しくないサービスだな・・・
825Be名無しさん:2006/06/08(木) 17:15:21
どんなにソースコードを読んでもコンパイラが変なバイナリ吐いてたら無意味。
コンパイラのbugが一番厄介だ。

>>809
VMwareを直接ハードにインストールできればいいわけだ。
826Be名無しさん:2006/06/08(木) 17:28:41
>>825
それがVMware ESX Serverなわけだが。
827ぴゅあ:2006/06/08(木) 20:15:16
>>820
型チェックは私はそんなに感じなかったですけどね。

私がポインタを理解できたのはX68Kにアセンブラの環境があってくれたお陰。
x86だったり本だけからだったりしたら到底理解できなかったと思うですよ。

>>821
Rubyだとそんなだったりするかも
(Rubyは使おうということにはならなかったのでPerlを想定してみての話ですけどね)

>>823
> もうすぐGoogleがネットワーク上で動く表計算ソフトを公開するそうだ
なんとも・・・という気が私はしたりですけど。。。

> 未来ではOSは機能が減って
"ブラウジング+メール+ワープロ+表計算+動画音楽再生等"として今のOSから削れそうな機能ある?


久しぶりに本屋に寄ってみたら>>783の書いてた「自作OS入門」なんだろう本を見掛けて、サラッと見てみましたけど、
「OS風アプリケーション」て感が。。。

その本を読んでのことかどうかは判らないですけど
その上で>>775の話が出てきたのだったりすると
なるほどね…でした。
828Be名無しさん:2006/06/08(木) 20:52:35
>>827
あんたはその「OS風アプリケーション」どころか
VBでハリボテアプリを作る能力すらないんだから
しゃしゃり出てこられても迷惑なんだけど。
829Be名無しさん:2006/06/08(木) 21:05:09
>827
>「OS風アプリケーション」て感が。。。
あの本の内容をこう感じるセンスはちょっとずれている気がする。
あれはOSとして単純すぎるとは思うけど、あれがOS風のアプリだとは思えない。
830Be名無しさん:2006/06/08(木) 22:08:27
>>827の最後の3行は同意

Kがあんなむちゃくちゃな俺様定義を持ち出すから、バカが増えた。
831Be名無しさん:2006/06/09(金) 07:51:59
狂信的原理主義者のほうがよほど有害。
832Be名無しさん:2006/06/10(土) 02:10:18
ぴゅあについて少なくとも分かることがある。
それは、初心者に3レスに渡るような複雑な解答をすることは、
すくなくともそれ自体が問題だということが分からない程度に"視野が広くない"
ということだ。まあ確かに"3レスの複雑な解答"には他の解釈もあると思う。
しかしそれいずれもが、最終的に彼の賢さを証明するには至らないと思う。
833暇なんでチョーーーカキコ:2006/06/10(土) 12:14:38

IBM 「お前BASIC以外にOSって作れねーの?」
ビル 「今すぐッスカ、時間いただければ何とか」
IBM 「今いるんだよ、何ならテメーの肛門にインストールしたろか」
ビル 「しゅいません、でもデジタルリサーチなんかどうよ。あそこのCP/MチョーCooooooool!!!!ッスヨ」
IBMデジタルリサーチ訪問。でもキルドールは、「あー? 仕事? かったりいよ」
つって飛行機遊び。
IBMぶち切れビルに電話「いねーよ、肛門にPC突っ込むから洗って待ってろよ」
ビル「そんな筆おろしの前に肛門何てかんべんしてくだせー」
ビル、シアトルコンピュータプロダクツにQD-DOSを買いに走る。
ビル 「ちょっとQD-DOSの権利欲売ってください
貞操には変えられないから金はいくらでも払います(IBMのことは隠す)」
泣きながらIBMにきたビルは
ビル 「どうっすかこれ。CP/Mなんかまるで問題にならないくらいチョーCooooooool!!!!」
(実はQD-DOSはCP/Mの劣化コピーだった)
辛うじて守られたビルの貞操
こんな感じ?
834Be名無しさん:2006/06/11(日) 18:38:39
17 :名無しさん@毎日が日曜日 :2005/09/05(月) 03:08:38 ID:sFj1eKTQ
奇形児を見たことはありますか? これは北海道の網走市であった話です。
古塚美枝さん(当時23) は、いわゆる売春婦でしたが夫がいました。
しかしその夫は働こうとせず、酒に溺れる毎日、そして酔うと必ず美枝さんに
暴力を振るいました。83年の夏、美枝さんは体調を崩し病院へ行きました。
原因は妊娠によるつわりなどでした。売春婦であった美枝さんは、
まず誰の子なのか考えましたが夫の子である事を確信し、
早く報告しようと急いで帰りました。しかし夫は自分の子とは信じず、
中絶を命じました。 それから5ケ月。結局美枝さんは中絶を拒み、
生むことを決意しましたが、夫は従わなかった事を不満に思い、
さらに暴力を振っていました。 そしてその日夫は美枝さんの腹部に
膝蹴りをしました。する と、美枝さんの股間からは溢れる様に血が流れてきました。
そして美枝さんは崩れ落ち、声にもならない 様なうめき声で唸りながら
........流産でした。夫は慌てて家を飛び出して行きました。何故?
それは生まれてきた子供が余りにも醜かったからです。目はあべこべに付き、
片方の目は眉毛の上に付いていました。鼻はだらしなく直角に曲がり、
口なんぞは縦向きに、しかも耳のつけねから裂け目の 様に付いていました。
動きもせず、ただこちらを眺めていました。 それからどうなったかは分かりません。
ただ、この話を聞いた人は最低3日間気を付けてください。
うしろで何か気を感じても振り向いて いけません。
それはあの子があなたを眺めているから。 10分以内にこれを
掲示板の5箇所に貼らなければそのままあの子は離れて行きません。
835Be名無しさん:2006/06/11(日) 21:45:51
CP/Mのコピーだから成功したんでオリジナリティ出してたら失敗してた。
コンシュマー、一般人がどれほど保守的であるかを直感的に分かってたのならゲイツはすごい。
無理矢理変える事ないしね。
windowsはmacを意識して無理矢理変えたのでひどいもんになってしまった。
vistaでようやくまともになる。
836Be名無しさん:2006/06/11(日) 21:54:13
いや、そんなことはない。
3.1やMeで捨て去ったデザイン、IE搭載前の95のシンプルな安定性・・・
VistaもどうもMac風なデザインを追求した結果、本来搭載するはずだった機能を捨て去ったにもかかわらず、ハイスペックを要求するものになった。
VIENNAもどうなるかはわかんないね。
837Be名無しさん:2006/06/12(月) 12:38:19
>>836
95は最初からコアレベルでIEを搭載してますから、
838Be名無しさん:2006/06/12(月) 13:06:06
>>837
知ったか乙
839Be名無しさん:2006/06/12(月) 14:37:04
>>836
macはquartz(openGL)-aqua
linuxはxgl(openGL)-kde/gnome
に対抗してaero(DirectX)-grass(他)にするんだよ。
いままでゲームでしかGPUを使ってなかったのを常時使うようにする。
CPUが描画していたのをGPUに描画させるようにするわけ。
windowsが一番遅れていた。
aero-lunaでも良かった。
今となっては2000/XPが一番低画質が劣っている。
linuxの方がずっと綺麗に描画してる現実がある。
840Be名無しさん:2006/06/12(月) 17:21:51
コアに結びついたのはIE4になってからだな。
841Be名無しさん:2006/06/12(月) 18:49:09
Win3.1のデザインは、WinXPに勝る
842Be名無しさん:2006/06/12(月) 19:45:30
あのころはどんなソフト使っても楽しかった。
今は機能の追求でソフトの面白さが失われているような気がする。
単純に俺が年食っただけかorz
843Be名無しさん:2006/06/12(月) 19:56:02
今楽しいのはアダルトサイトの入退会を繰り返して各地を転々とすること。
集めた動画は1TBを超えたがその1割もまともに見ていない。
誇大広告に釣られて初めてダウソした瞬間のドキドキがたまらない。
844Be名無しさん:2006/06/12(月) 20:24:25
>>840
3からでつ。
まああのころはシェルに手を出していないので、
それほど強い結合じゃなかったが。
845Be名無しさん:2006/06/13(火) 14:53:11
>>842
だって何かやりたい事をする為にソフトを使うんであってソフトを使う為にソフトを使うわけでは無いでしょ。
機能の追求は過去の類似ソフトの機能を吸収してより高める為には必要
846Be名無しさん:2006/06/13(火) 16:34:17
あのころはやりたいことの為にソフトを使うというか
このソフトを使えばこんなことが出来る。っていう事でソフトを使ってた。
パソコンを使いたいためにソフトを使ってたような感じ。
あの頃はメモリやドライバの設定も自分でやらないとゲームもまともに動かなかった時代だったから
とにかくパソコンの色々な使い方を模索していたのかも知れない。
目的なんてなんにもなかったようなあの頃。
847Be名無しさん:2006/06/13(火) 16:36:14
ちなみにあの頃ってのはWin3.1の頃
848Be名無しさん:2006/06/14(水) 14:35:37
>>846
あったあった。今もそういう感覚が残ってない訳じゃないけど、
それだけじゃお腹一杯にならなくなったのかもね。
コンピュータ好きな人だけが使う世の中じゃないし。
849鳥取砂丘 ◆GXX0p3qNcg :2006/06/19(月) 20:28:54
うん
850Be名無しさん:2006/06/19(月) 21:37:23
ぐはぁ!
851Be名無しさん:2006/06/26(月) 03:18:55
ちょっと前までMonaのスレがあったと思うのですが
探したけど見つかりません。ここがそうですか?
852Be名無しさん:2006/06/26(月) 07:32:07
>>851
荒らしが酷いので強制節穴板に移動させられた

OSを作ろうPart15Mona専用
http://etc3.2ch.net/test/read.cgi/siberia/1136088527/
853Be名無しさん:2006/06/26(月) 11:22:21
>>852
有賀d
854鳥取砂丘 ◆GXX0p3qNcg :2006/06/26(月) 21:49:32
いいくにつくろう
855Be名無しさん:2006/06/27(火) 13:04:51
>>854
文化大革命
856鳥取砂丘 ◆GXX0p3qNcg :2006/06/28(水) 20:47:47
今日も一日疲れました
まる。
857Be名無しさん:2006/06/28(水) 21:04:05
>>854 >>856
ここチラシの裏じゃないんで、続きはこっちでやれや。

AireOS
http://pc8.2ch.net/test/read.cgi/os/1112667480/
858鳥取砂丘 ◆GXX0p3qNcg :2006/06/28(水) 21:14:14
うちそのスレ無関係だからー
859Be名無しさん:2006/06/28(水) 21:20:50
>>858
その割には49回も発言してるようだけどw
860鳥取砂丘 ◆GXX0p3qNcg :2006/06/28(水) 21:24:11
まあ疲れたから寝るねー
861Be名無しさん:2006/06/28(水) 21:30:27
(^ω^)ノおやすみなさーい
862Be名無しさん:2006/06/29(木) 18:52:21
>>858
開発者本人だと思ってたが ??? 状況がよく分からん、
差し支えなければ経緯など語って下さらんか?
863Be名無しさん:2006/06/29(木) 21:35:34
俺はさっきゅん=meg-osの中の人=AireOSとかおれんじぺことか≒L様だと思ってた
864Be名無しさん:2006/06/29(木) 21:45:15
>>859
発言回数もそうだけど1が本人じゃん

>>863
L様は明らかに別人だけど後はそうだね
865Be名無しさん:2006/06/29(木) 21:46:14
L様で思い出したけど昔はさっきゅんも崎本様って様付けで呼ばれてた
866鳥取砂丘 ◆GXX0p3qNcg :2006/06/29(木) 22:55:29
おはよー(゚◇゚)ノ
今日も一日
おやすみなさい
867鳥取砂丘 ◆GXX0p3qNcg :2006/06/30(金) 12:32:37
去年おれぺこPJから除名されて今はおれぺこに関する権限ありませんのでー

ていうのを今まで知らなかった人多いのかな?(;゚Д゚)
868Be名無しさん:2006/06/30(金) 12:35:26
>>867
>>857はおれぺこスレじゃなくてAireOSスレ

おれぺこスレは湾岸専用だって認知されてる
http://pc8.2ch.net/test/read.cgi/os/1108576841/136
>ここ湾岸がOSを作るスレなんで、続きはこっちでやれや。
869鳥取砂丘 ◆GXX0p3qNcg :2006/06/30(金) 12:45:51
aireosもおれぺこも同じじゃん

もううちは権利ないの
870Be名無しさん:2006/06/30(金) 12:50:50
>>869
kwsk
871鳥取砂丘 ◆GXX0p3qNcg :2006/06/30(金) 13:02:44
方針の対立でおれぺこfork

和解して再統合

崎本仕事してないじゃん

除名

月日は流れ ← いまココ
872Be名無しさん:2006/06/30(金) 13:14:08
 ∧_∧
 (´・ω・`)  マターリとお茶でもドゾー
 ( つ旦O
 と_)_)  旦旦旦
873鳥取砂丘 ◆GXX0p3qNcg :2006/06/30(金) 13:19:26
>872
(´・ω・`)っ 旦 イタダキマス

forkしたままだと思ってた人結構多いのかなー?
874Be名無しさん:2006/06/30(金) 13:27:08
>>873
なるほどー
誤解してた

方針の対立でおれぺこfork

湾岸仕事してないじゃん

崎本除名

AireOSライセンス騒動

MEG-OS復活 ← いまココ

だけどここをチラシの裏で使っていいという理屈にはならないので
建てた責任を取ってAireOSスレは使い切ってくれ
875鳥取砂丘 ◆GXX0p3qNcg :2006/06/30(金) 13:34:23
DAT落ちまで放置でインデネ?
876Be名無しさん:2006/06/30(金) 13:41:20
>>875
ガベコレされるのは20以下(即死)か980以上だけなんで
今のまま1レスも付かなくても落ちるのに10年以上掛かりそうだが

いずれにせよここはFD起動IPLで四苦八苦する厨のスレなんで
MEGスレ建てるなりしてここから出て行くのが筋
877Be名無しさん:2006/06/30(金) 13:44:19
>>876
崎本様が朝鮮製ばりに厨をサポートしてくれるなら
ここを私物化してもいいと思うニダ
878Be名無しさん:2006/06/30(金) 13:45:56
>>877
戦後の混乱に乗じて土地を接収したのと同じ作戦ニッカ?
879鳥取砂丘 ◆GXX0p3qNcg :2006/06/30(金) 13:50:50
申し訳ありませんでした
2ch初心者なもので
880Be名無しさん:2006/06/30(金) 13:51:02
なんでこんな過疎板にホロン部が来てんだよ
881Be名無しさん:2006/06/30(金) 13:53:20
>>879
とんでもないっス
これからも楽しみにしてるっス
882Be名無しさん:2006/06/30(金) 13:56:09
 ∧_∧
 (´・ω・`)  マターリと高麗人参ドリンクでもドゾー
 ( つ旦O
 と_)_)  旦旦旦
883Be名無しさん:2006/06/30(金) 13:57:47
>>880
崎本様って反特亜の極右じゃなかったっけ?
884Be名無しさん:2006/06/30(金) 14:47:04
さっきゅんがんがれ
885鳥取砂丘 ◆GXX0p3qNcg :2006/07/01(土) 14:28:13
よーし

寝る!!!!!!!!
886Be名無しさん:2006/07/01(土) 15:42:46
>>885
やらないか?
887Be名無しさん:2006/07/01(土) 16:28:34
    シュボッ
       ., ∧_∧  
      []() (・ω・` )      l二ヽ
       □と    ) ̄⊃     ) )
      ⊂ (_(_つ   ̄⊃  / ̄ ̄ ̄ヽ
       ⊂_      ._⊃   | (\/) |
         ⊂__⊃.      |  > <  |
                     | (/\). |
                     ヽ___/


          ↑
  シコシコと開発したOSをすぐに放棄するさっきゅん
888鳥取砂丘 ◆7SKBJME/7U :2006/07/01(土) 19:21:09
おまいら
おはよー!!!!!!!!!!!!!
889Be名無しさん:2006/07/01(土) 19:33:59
>>888
ウホッ!
890Be名無しさん:2006/07/03(月) 01:01:54
綱引きのときの掛け声ってえどうして
おーえす
おーえす

なんですか?
優しいお兄さんたち教えてください☆
891Be名無しさん:2006/07/03(月) 03:21:18
>>890
春日歩乙
892Be名無しさん:2006/07/03(月) 10:25:11
 |
 |  ('A`) OSツクルノ マンドクセ
/ ̄ノ( ヘヘ
893Be名無しさん:2006/07/03(月) 22:49:22
OS自作入門買いますた
全部完成したあとに、マイGUIシステムを考えるのが楽しみ
894Be名無しさん:2006/07/03(月) 23:05:26
>>893(やーさん)
ここさっきゅんに乗っ取られたんで、続きはこっちでやれや。

「30日でできる!OS自作入門」
http://pc8.2ch.net/test/read.cgi/os/1151897893/
895鳥取砂丘 ◆7SKBJME/7U :2006/07/03(月) 23:18:58
このスレ乗っ取ったさっきゅんって悪い奴だな!

やーいばーかばーか
896Be名無しさん:2006/07/03(月) 23:26:00
>>894
誘導サンクス
といっても、特に書くこともないけど・・
897鳥取砂丘 ◆GmgU93SCyE :2006/07/05(水) 18:18:18
おまいらおはよう
ございます
898Be名無しさん:2006/07/05(水) 18:55:46
アッー
899Be名無しさん:2006/07/06(木) 22:14:10
>>880
朝鮮製というか超先生だな、その昔そんなスゴイ奴がいたんだな。
  合掌(-人-)
900Be名無しさん:2006/07/06(木) 22:21:00

  /⌒ヽ     / ̄ ̄ ̄ ̄ ̄
 ( 人  )   /先生!
  .|   |  <   ぼくの核弾頭は
  .|   |    \     もう限界です><
  .|   |     \_____
  .|   |
  .|   |
  .|   |
  .|   |
  .|   |
  .|   |
  .|   |
  .|   |
  .|   |
  .|   |
901Be名無しさん:2006/07/06(木) 22:22:48
マイOSでROMフォントのデータを使いたいのだが著作権上の問題はないだろうか
902Be名無しさん:2006/07/06(木) 22:23:24
ありまくり
903Be名無しさん:2006/07/06(木) 22:25:47
>>901
そんなときのためのM+
904鳥取砂丘 ◆TJ9qoWuqvA :2006/07/06(木) 22:51:40
実行時に吸い出すなら問題ないんじゃ?
そうやって文字表示してるソフトはいくらでもあるし?
905Be名無しさん:2006/07/06(木) 22:56:31
吸い出したもんを添付しなきゃおkかと
906Be名無しさん:2006/07/07(金) 06:54:00
ROMフォントってどうやって吸い出すの?
907Be名無しさん:2006/07/07(金) 17:53:07
そんなこと俺だったら、恥ずかしくてとても質問できない・・・
908Be名無しさん:2006/07/07(金) 17:53:57
>>907
まあそう言わんで答えてや
909Be名無しさん:2006/07/07(金) 21:20:47
>>906
> ROMフォントってどうやって吸い出すの?

つ INT 10h AX=1130h (AT互換機リアルモード)

チュウゥゥゥッ げっぷ
910Be名無しさん:2006/07/07(金) 23:42:06
>>909
さんくすこ
911Be名無しさん:2006/07/10(月) 12:43:04
コピーを何枚でも作り青いCDケースにいつもしまっているO型がそこにいる!KKK
912Be名無しさん:2006/07/10(月) 12:46:42
911さんあたしそいつしってる!に!
913Be名無しさん:2006/07/10(月) 13:15:58
911って飛行機がビルに突っ込んだ事件?
914鳥取砂丘 ◆v0E9F00Dj2 :2006/07/11(火) 13:13:42
夏は暑いなぁ
915:2006/07/12(水) 02:30:08
鳥取砂丘工業高校パソコン部部長
916タカさん:2006/07/12(水) 22:45:08
雑誌で個人ぷろぐらまーが(オタク)昔、国産として使われた富士通のFMタウン用OSのタウンOS。このタウンOSを元に新しいOSを作っていると。
917Be名無しさん:2006/07/13(木) 23:21:11
おい、さっきゅん!おまいこのスレ乗っ取ったんだから責任とってネタふり汁!












・・・「寝たふり」なんてボケかますなよ
918Be名無しさん:2006/07/13(木) 23:28:04
さっきゅんなんて最初からいなかったんだよ・・・最初から・・・
919タカさん:2006/07/14(金) 13:01:39
今日、友達に「30日でできるOS自作入門」の本をもらったから今日からOS作ります。皆さんもやってみては。
920Be名無しさん:2006/07/14(金) 13:51:32
以前ポケコンで作ったことあるからいいや、x86アーキテクチャなんてアフォなものに嵌まらなければ楽勝。
921鳥取砂丘 ◆KYoNEe6GsI :2006/07/15(土) 16:35:45
うん
922Be名無しさん:2006/07/15(土) 18:56:19
MEG-OSのCOM64が気になった。exe2comとかelf2comってどこにあるの?
923鳥取砂丘 ◆KYoNEe6GsI :2006/07/15(土) 20:42:20
現在正式版は公開してないですよ
ttp://meg-os.org/view.cgi/temp/mkcom/
924Be名無しさん:2006/07/16(日) 15:33:39
>>923はブラクラ
925Be名無しさん:2006/07/16(日) 16:02:44
>>924
喪前のレスでアクセスしてみる気になった・・・てか、ブラクラじゃないやん(´・ω・`)
926Be名無しさん:2006/07/16(日) 16:05:58
なんか見るたびに変わってるね
今度はグロ画像になった
927Be名無しさん:2006/07/16(日) 19:02:24
view.cgiで何か振り分けてるんじゃね?アクセスしてないけど
928Be名無しさん:2006/07/16(日) 19:10:52
あの作者の事だからどんなスパイウェアが仕込まれてるやら...
929Be名無しさん:2006/07/16(日) 20:44:16
この前はウイルス配ってたな
930Be名無しさん:2006/07/16(日) 21:43:03
一応コンパイルするでつ
931Be名無しさん:2006/07/17(月) 10:13:34
>>929
俺そのウイルスでパソがバグって弁償しろって泣き喚いてた友人知ってるわ
932Be名無しさん:2006/07/17(月) 16:40:09
933Be名無しさん:2006/07/17(月) 18:31:16
さっきゅんって昔よそのOSパクって自慢げに64ビット作りましたとかほざいてたやつ?
客は馬鹿だから大きい数字出しときゃびびるとか内輪チャットで吠えてたらしいね(藁
934Be名無しさん:2006/07/17(月) 18:33:56
あの当時のさっきゅんは輝いていた
湾岸が乱入してメチャクチャにするまでは・・・
935Be名無しさん:2006/07/17(月) 18:38:23
>>933
その噂聞いた事あるぞ
64BITじゃないのに64BITって言い張ってた奴だろ?
本当の作者がブチ切れて訴訟問題になりそうになって名前変えて逃げたんだっけ
936Be名無しさん:2006/07/17(月) 18:41:19
>>934
さっきゅん名無しで乙
無理やり美化しようとしても証拠は上がってるぞ(藁
937Be名無しさん:2006/07/17(月) 18:42:46
>>936
証拠出せやカス
938Be名無しさん:2006/07/17(月) 18:44:05
↑ディスプレイの前で真っ赤なさっきゅん
939Be名無しさん:2006/07/17(月) 18:45:00
急に更新がたくさん入ったと思ってきてみたらさっきゅんネタか
ところでさっきゅんって誰?
940 ◆Dream/3P/. :2006/07/17(月) 18:45:11
>>938
別人だ
941 ◆AEqcy/sQU6 :2006/07/17(月) 18:55:46
>>939
このスレの支配者様よん♥
942Be名無しさん:2006/07/17(月) 18:57:12
さっきゅんて湾岸さん達ががんばって作ったソフトを全部自分で作った事にしてたんだっけ
湾岸さんは最初我慢してたけど耐え切れなくなっておれぺこは崩壊
この件で何人も恨み買って今は別の名前で同じような事してる
どんどん敵を増やしてそれでもさっきゅん
943Be名無しさん:2006/07/17(月) 18:58:09
>>941
なあ、1000取った奴がこのスレの支配者ってことにしない?
944Be名無しさん:2006/07/17(月) 18:59:35
さっきゅんネタはこっちでやれや

http://ex16.2ch.net/news4vip/
945Be名無しさん:2006/07/17(月) 19:04:26
湾岸自体手のつけようがない厨房な件
946Be名無しさん:2006/07/17(月) 19:05:12
>>943は、注目されていなくて寂しいさっきゅんがスレッドの伸びを期待して書いたよう。
「支配者」という発想は、とても他の人が真似できないところだと思うんだよね。
ごめん。一つ浪費した。
947Be名無しさん:2006/07/17(月) 19:06:56
>>945
今はWeb 2.0の達人気取りでCatalystのセッションなんかやってるYO!
948Be名無しさん:2006/07/17(月) 19:07:09
 ̄ ̄ ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           O 。
                 , ─ヽ
________    /,/\ヾ\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|__|__|__|_   __((´∀`\ )< というお話だったのサ
|_|__|__|__ /ノへゝ/'''  )ヽ  \_________
||__|        | | \´-`) / 丿/
|_|_| 从.从从  | \__ ̄ ̄⊂|丿/
|__|| 从人人从. | /\__/::::::|||
|_|_|///ヽヾ\  /   ::::::::::::ゝ/||
────────(~〜ヽ::::::::::::|/        =このスレ 完 =
949Be名無しさん:2006/07/17(月) 19:08:19
次スレ

「30日でできる!OS自作入門」
http://pc8.2ch.net/test/read.cgi/os/1151897893/l50
950Be名無しさん:2006/07/17(月) 19:10:46
>>946
「1000でこのスレの支配者」て、過去のネオ麦の台詞だろ。
発想がさっきゅん的じゃなく、さっきゅんみたいな精神疾患はありふれていて、
過去に問題を起こした人もなんか似てましたというそれだけの話。

なんというか思い込みで話を構築して根っこからガラガラ崩れるのって
極めてさっきゅん的だから、>>946は注意して生きたほうがいいな。
ああ、本人かも知らんけどw
951Be名無しさん:2006/07/17(月) 19:11:48
次スレ

「30日でできる!OS自作入門」
http://pc8.2ch.net/test/read.cgi/os/1151897893/l50
952Be名無しさん:2006/07/17(月) 19:16:01
953Be名無しさん:2006/07/17(月) 19:31:50
>>947
やっぱりどうしようもない厨房だな・・・

そんなことより、まともな次スレどこ?
954Be名無しさん:2006/07/17(月) 19:35:48
このまま埋めちまおうぜ
955Be名無しさん:2006/07/17(月) 19:38:53
>>953
このスレは厨房がFDブートIPLで挫折するのがメインテーマだったが
川合本が出て役目が終了したんで次スレは↓でいいんよ

「30日でできる!OS自作入門」
http://pc8.2ch.net/test/read.cgi/os/1151897893/l50
956Be名無しさん:2006/07/17(月) 19:45:32
作ろうスレ略歴

1. 太郎がOS板で作ろうスレを建てる
2. 太郎がム板で作ろうスレ2を建てる
3. 太郎がム板を追放されてOS板に逆戻り
4. 太郎が作ろうスレから追放されて分離
5. 作ろうスレが厨房の受け皿になる
6. 太郎がOS板から追放されてシベリアに流刑
7. 川合本が出て厨房の受け皿が移る
8. 作ろうスレがさっきゅんに乗っ取られる←今ここ
957Be名無しさん:2006/07/17(月) 19:49:05
72 名前:Be名無しさん[sage] 投稿日:2006/07/16(日) 23:21:01
実際は教えてるんじゃなくて、ただソース提示してこれコンパイルしたらできるよって言ってるだけ。


K本がこの程度なのに、勝手にテーマ設定されてもねえ。
どうせ>>955=あっちのスレの>>1なんだろ?
958Be名無しさん:2006/07/17(月) 19:52:20
>>957
厨房の相手はKに押し付けとけばいいんだよ
雑談がしたいなら総合雑談スレだってあるんだし
厨房の質問に責任持って答えてくれるんなら
このスレの支配者にでも何でも勝手に即位してくれたまえ
959Be名無しさん:2006/07/17(月) 19:56:05
しょせん>>958は主になった気分でいる厨房だろ
960Be名無しさん:2006/07/17(月) 19:57:04
>>959
主はスレをリセットしてるYO!

OSを作ろうpart12
http://pc8.2ch.net/test/read.cgi/os/1153133384/l50
961Be名無しさん:2006/07/17(月) 19:58:02
いや、このスレの支配者はさっきゅんだから。
962Be名無しさん:2006/07/17(月) 19:58:41
崎本様七誌で乙
963Be名無しさん:2006/07/17(月) 19:59:49
なあ、1000取った奴がこのスレの支配者ってことにしない?
964Be名無しさん:2006/07/17(月) 20:00:25
ネオ麦茶七誌で乙
965Be名無しさん:2006/07/17(月) 20:01:26
966Be名無しさん:2006/07/17(月) 20:05:41
967Be名無しさん:2006/07/17(月) 20:06:55
支配者争いが激しいなw
968Be名無しさん:2006/07/17(月) 20:15:46
>>966
MonaスレがVIPに建てられて即落ちしたね
だから今はシベリア

夢タソがVIPでMonaの派生OS作ってたけどどうしてるかな
結局Monaに戻ってlibcとか作ってるみたいだけど
969 ◆Dream/3P/. :2006/07/17(月) 20:18:13
ソープで中出ししてきましたヨ!!
やっぱ生は最高!!!!
エイズになっても構わない!!
ナマは気持ちイイ!!!!!
970 ◆AEqcy/sQU6 :2006/07/17(月) 20:18:46
誤爆スマソ
971Be名無しさん:2006/07/17(月) 20:28:47
なあ、手取り足取り教えてもらってOSを作った奴がこのスレの支配者ってことにしない?
972Be名無しさん:2006/07/17(月) 20:29:54
ぬるぽ
973噂の崎本 ◆GG1SfzBGbU :2006/07/17(月) 20:31:49
てす
974Be名無しさん:2006/07/17(月) 20:32:40
>>971
太郎様が支配者で決定ですね!!
975太郎様:2006/07/17(月) 20:33:34
今更こんなスレいらね( ゚д゚)、ペッ
976崎本まりあ ◆GG1SfzBGbU :2006/07/17(月) 20:34:28
では我輩がもらおう
977Be名無しさん:2006/07/17(月) 20:35:28
ぬるぽ
978Be名無しさん:2006/07/17(月) 20:35:47
   ( ・∀・)   | | ガッ
  と    )    | |
    Y /ノ    人
     / )    <  >__Λ∩
   _/し' //. V`Д´)/
  (_フ彡        /  ←>>972
979Be名無しさん:2006/07/17(月) 20:36:27
   ( ・∀・)   | | ガッ
  と    )    | |
    Y /ノ    人
     / )    <  >__Λ∩
   _/し' //. V`Д´)/
  (_フ彡        /  ←>>977
980Be名無しさん:2006/07/17(月) 20:39:36
>>959
異議がなければ崎本様に即位していただきますが?
981Be名無しさん:2006/07/17(月) 20:40:44
ぬるぽ
982崎本まりあ ◆AEqcy/sQU6 :2006/07/17(月) 20:42:12
>>980意義あり
983Be名無しさん:2006/07/17(月) 20:42:15
   ( ・∀・)   | | ガッ
  と    )    | |
    Y /ノ    人
     / )    <  >__Λ∩
   _/し' //. V`Д´)/
  (_フ彡        /  ←>>981
984Be名無しさん:2006/07/17(月) 20:43:31
ぬるぽ
985Be名無しさん:2006/07/17(月) 20:43:50
>>982
それでは二人の崎本様同士で決闘していただきましょう

          , -‐'"´ ̄ ̄ ̄ ``ヽ
        /爪  ヽ `ヽ、`ヽ、   \
       / / !lヽヽ  \  \ \  }、
.       / l l l ヽ ヽ、_弐_ --ヽ _ヽノノ!
      /! ll__l ヽ-‐' "┴/`  l/rヌ、ノ|
      !l/fri刀          >'〉} ノ!
         l ̄ 、 _      ,Lノノ |
            ',  ヽ'´ヽ    / | 「||l!,|  皇国の興廃この一戦にあり
            ヽ、  ー'    / .| | | |!|  各員一層奮励努力せよ!
           ``ー-ャァ' ´ _」、lLl l!|
             __ノ /==三三ヽL
           / }ム/==ニ三-ァ-─‐ヽ
            」ll /○/ ニ, -'´ /    , -'´!
           i´{、/ //   /  , -'´_  |
        / ̄  ̄ ー─‐'´   l  | ●| .|、
       /l  /`ヽ崎本まりあ様 ノ   ̄ ̄/」ヽ
       / l/   l     、   ヽ    / /'iヽヽ
986Be名無しさん:2006/07/17(月) 20:44:06
   ( ・∀・)   | | ぬるぽ
  と    )    | |
    Y /ノ    人
     / )    <  >__Λ∩
   _/し' //. V`Д´)/
  (_フ彡        /  ←>>983
987Be名無しさん:2006/07/17(月) 20:45:21
>>984
くそー今日はバグが多いな
能書き垂れてないで何とかしてくれよ>>959

   ( ・∀・)   | | ガッ
  と    )    | |
    Y /ノ    人
     / )    <  >__Λ∩
   _/し' //. V`Д´)/
  (_フ彡        /  ←>>984
988崎本まりあ ◆GG1SfzBGbU :2006/07/17(月) 20:46:03
2chの使い方わすれたから寝るー(*^-^*)ノ
989Be名無しさん:2006/07/17(月) 20:46:40
   ( ・∀・)   | | ガッ
  と    )    | |
    Y /ノ    人
     / )    <  >__Λ∩
   _/し' //. V`Д´)/
  (_フ彡        /  ←>>987=ぬるぽ
990Be名無しさん:2006/07/17(月) 20:47:38
ぬふあうえおやゆよわほへー

991Be名無しさん:2006/07/17(月) 20:48:45
\/\/\/\/\/\/\/\/\/\/\/\/\/\/


こ こ か ら 超 濃 厚 な ホ モ ス レ に な り ま す。


           ご 期 待 く だ さ い ! !


/\/\/\/\/\/\/\/\/\/\/\/\/\/\
992Be名無しさん:2006/07/17(月) 20:49:23
  /⌒ ̄ ̄ ̄\ ρ 「う〜〜トイレトイレ」
  /川‖‖| ‖|  ゝ  今トイレを求めて全力疾走している僕は
 〈巛《〈〈 \巛 |    予備校に通うごく一般的な男の子
  │个 个 ヘ |    強いて違うところをあげるとすれば
  │┌−   )/     男に興味があるってとこかナー
   ヽヽ 丿//      名前は道下正樹
    ┼┬┼
 /┴┴┴┴┴ ̄\
 | │       ┤ \
 | │       │\ \
 | │       │ \ \
 | │      /│  │ │
 | │     / │  │ │
┌─ヽ       」   │ │
│ ├┴┴┴┴┤   田田
│ │  ‖   ヽ   / │
├-┤   /   /   LllLノ
993Be名無しさん:2006/07/17(月) 20:49:57
   ;ヾ、,.、,、.、rツ ッッシ、:':' r':' _,、-'゙_,  や 公 帰 そ
 ,、,、,ミッン、,._        _,、-'゙_,、-'゙.   っ 園. り ん
 、ィッ ,:、 ゙''ゞ=ミ、~.: _,、-'゙_,、-'゙  __,  て の 道 な
 }; ヾ ゙' {!li;:,. _,、-'゙_,、-'゙ _,、-'゙,::|_|  来  ト に わ
 ゞァ''゙ぐ _,、-'゙_,、-'゙ _,、-'゙,、-''" .|_   た イ  あ け
 ,ヘ:'_,、-'゙_,、-'゙..::「┴_,エ ┴  ''"_|_|  の. レ る で
  └i'゙-ニ,ニエ,.:|ニ「 _エ ┴  ''"_|_   だ に
    |エ | ニエ, |ニ「 _エ ┴  __.|_|_
    |エ | ニエ, |ニ「 _エ ┴ 「fj.||__|__| _|
    |エ | ニエ, |[8] _エ ┴ └‐_|_|__l__,|⊥ |__
    |エ | ニエ, |二 _.エ 二.._ |__|__| _|_|_
    |エ | ニエ, |┴ _.エ 二.._ |_|__l__,|⊥ |__|
    |エ | ニエ, |工 _.エ 二.._ |__|__| _|_|_
    |エ | ニエ, |工 _.エ 二.._ |_|__l__,|⊥ |__
  -,-=''┷━━|┬ニエ ┬--  .|__|__| _|_|_
   ''ーニ_''ー::、_ ゙┷ 工_二'‐-、,_|_|__l__,|⊥ |__
  二二二`''ーニ`_''ー-、_¨''━、L|__|__| _|_|_
  二二二二二二二`''ーニ_''ー 、_       |⊥ |__
994Be名無しさん:2006/07/17(月) 20:50:22
   〃∩      カタ...     ぽ
   ⊂⌒(゚д゚)       る
     `ヽ_っ_/ ̄ ̄ ̄/ ぬ
         \/___/ 旦
995Be名無しさん:2006/07/17(月) 20:50:30
                          ,.、、.,_         座  ベ  ふ
      _,,.、、、、、.,,_             ,ハ爪、,::゙ヽ.          っ  ン  と
    /.:::::::::::::::::::..`ヽ、            `l 'i 'i'`ln:}           て  チ 見
   / .:::::::::::::::::::::::::::::::. '、            l ゙ァ 人{        い に  る
   | :::::::::::::::::::::::::::::::::,ヘ{ツ          `コfェエlユュ         た 一  と
    | ::::::::::::::::::::::::,ィゥ ノ j           /;.;.ヽ   ヽ,        人
   |::::::::::::::::::::::( |.!  ;{           l;.;.;.;.;.|    i'、      の
   .|::::::::::::::::::rリ`l,〉   j}゙          '!;.;.;.;.;|     !;'!_       若
    }:::::::::::::::ノ゙  l  /            '!;.;.;.;.|    「 |||       い
   ,xァ''ー'゙'`    '、 /            ノ;.;.;.;..j     |,,|||      男
  / ー`¨`''''ー-- 、」゙'′_ ..,;:';;'. ;:;:;:;..  /;.;.;.;/ __三」 |||      が
 ''^ーァ 、_____  ̄ /       __/;.;.;/lニl-'┴┴厂
  `>'、,     '''"´ ̄ ̄_二ヽ、 ,';';'; /  >'′ | | l`'Y'))i
  /           /    ヽ   `ー' :;:;: ,|-' 'ー'ニノノ,.,:,:,:
 ,'        ,   /      ゙、""''''''-= :,,_ /| l: : :"''|'′,.,.,.,.
          l /  __      !       / :| l: : : :.|
          l, l  く,_  、   |        /_:::| l: : : :|
 ''''ー--_  、、,,,_リ    `ヽ、ヽ, ,!     /   ̄`''ー'、
       ̄`¨`'''|!    _,,..、二,,_,〉'_ー_/    , ,、   `ヽ,
          |!   'ー''"´  '! /     /ニ''''ー ---'-
996Be名無しさん:2006/07/17(月) 20:50:54
   ∧_∧    / ̄ ̄ ̄ ̄ ̄
    (ω・ )ゝ < ぬるぽ?
.  ノ/  /     \_____
  ノ ̄ゝ
997Be名無しさん:2006/07/17(月) 20:51:25
       /      ,. ===、、       ヽ
   ば   |             | l          ',     ど
 し か   |      _... -―‐-'∠.._       l    こ. い
 や に   !   ,. '´: : : : : : : : : : : :`ヽ       |   い. つ
 が    」 //: : : : : : : : : : : : : : : : ヽ    |   つ も
 っ    / /´/: ..l l  !   l   l  . ..',   /.   も
 て     ! ′l: l: :|: :.!: :|l: :!、:l',: :!: :.|: l: !:l:|  '´ ̄`ヽ、,.- 、,.ィ´
 !    |.   |: !: :!:`ト、l_V, N Llィ´!:///:.',__    ′
    ,. -、|.  _.Vヽハ:.( ヒソ´  `ヒソ )イ): : : :ヽ: : :├‐ - 、
-、/    ` ノ: : :.r ハ'' '' ''_''_''_'' '' '' /、rニl: : :ヽ-: 〉、: : :.|、
 ′    ,:'´|: : ,ィ7:/ ヽ、_{、......,}_,.ィ´ヽヽ┤`ヽ、-‐ヽ:_`_:l、:ヽ
     |: : l/: : :!:l   ! `T´_...-l-.、 !:|イ: : : : `!    l、_|、
      /ヽ_〈: : : :.N./ ̄_7,「|\_.. :.:.:.7'フ: : : : /7    |: : : :〉
      |,. ヘ.:ヽ: : : :ヽ:.:.':´/__o_ヽ:.:.:./7: : : : :/:./`丶、 `ト、/、
 _.. - '"  ヽ_|、: : :_|:\:.:/:/  |:.`:‐┘、ヽ-‐ '- '.._    `丶、: /
´    _..- '"l _.二<:.:.:.:.´:.|  |:.:.;. -‐イ ̄:`:丶、 `丶、   `丶
_.. - '" |: : : :l´: : : : :ヽヽ-┘  '´  /ヽ:、: : : : : |      ,丶、
     ``|: :l: _: -:'"ハー - ― ―/  ヘ:.`丶、/、  ー'-ァ´ ``
       >": : :/  ヽ、 _ _/     \: : : : :\
     /: : : :/                \: : : : : >
     `ヽ: :./                  \: : :|
      ∨                     ヽ/
        /               ',     /  /\
     / , '               ',   / / /、
998Be名無しさん:2006/07/17(月) 20:51:26
>>998
咥えた後どうしたって?

>>999
ゴックン?

>>1000
なに亀梨で抜いたって?
999Be名無しさん:2006/07/17(月) 20:51:43
崎本様のために取って置いてね!!!
(勝手に1000getした香具師はコロ助)
↓↓↓↓↓↓↓↓↓↓↓
1000Be名無しさん:2006/07/17(月) 20:51:57
  ̄ ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           O 。
                 , ─ヽ
________    /,/\ヾ\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|__|__|__|_   __((´∀`\ )< というお話だったのサ
|_|__|__|__ /ノへゝ/'''  )ヽ  \_________
||__|        | | \´-`) / 丿/
|_|_| 从.从从  | \__ ̄ ̄⊂|丿/
|__|| 从人人从. | /\__/::::::|||
|_|_|///ヽヾ\  /   ::::::::::::ゝ/||
────────(~〜ヽ::::::::::::|/        = 完 =
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。