X



OSを作ろうpart12
0001Be名無しさん
垢版 |
2006/07/17(月) 19:49:44
独自にOSを作っているまたは、作ろうとしている人たちのための
スレッドになればと思います。

■前スレ
OSを作ろうpart12
http://pc8.2ch.net/test/read.cgi/os/1108836476/
0265256
垢版 |
2006/09/18(月) 14:48:50
>>255
少し調べてみたけど、別にintとかコールゲートでも問題なさそうですね、
ってか2000辺りでもintは使われているんだな。
まぁオーバヘッドを考えたらsysenter一本らしいですけど。
とにかく参考になったので多謝。

後はメモリの管理かぁ、むむぅ、ここがネックだなぁ。
0267Be名無しさん
垢版 |
2006/09/18(月) 16:04:34
>>266
比較的2000って信頼性では良いという評価を受けているから、ビックリしました。
sysenterとかそういう命令じゃないと、現状では信頼性が確保できないのかと思ってしまいました。

やはり調べないと分からないものですね。変態チックで楽しいですけどw
0268崎本
垢版 |
2006/09/18(月) 18:43:51
「最近」ゆっとるがな(´・ω・`)
0272崎本
垢版 |
2006/09/18(月) 19:26:09
パソの世界じゃ2000年はもう過去じゃね?
0273Be名無しさん
垢版 |
2006/09/18(月) 19:48:43
>>270
いや、関係ないんだなぁと改めて確かめる事ができたということです。
もともと大して問題は無いよなぁーとは思っていたけど。

>>272
崎本さんは64bitOSを作っているわけですから。
まだまだIA32も現役だからねー。

結論として何でもいいけどバグさえ混入しないようにという結論となりますた
0275Be名無しさん
垢版 |
2006/10/21(土) 00:35:02
以前に仮想86モードに付いて質問した者です。

取り合えず解決しました。

今回やりたかった事はローダからカーネルをメモリーに読み込むために
DISK BIOSを使用したい為、シングルプロセスで他からの割り込みが入らない
条件で仮想86モードへ移行し、プロテクトモードに戻ってくることを想定しています。

旨く行った条件は NMI 関連の割り込み処理なので実際にやりたい事とは違いますが
下記の様に処理しています。

1)メインの処理で NMI の割り込みを許可
2)メイン処理で無限ループに入る
3)タイマー割り込み発生
4)タイマー割り込みハンドラ内で一時的なスタックを使用して
  16Bits タイマー割り込みハンドラ を呼び出す為に仮想86モードへ移行
5)この時、IIRET の戻り先を #UD を発生させる関数にする
6)#UD の例外処理関数内で 終了処理を行う
7)この時点で4)の直前に戻っている
8)そのまま、何もせずに割り込まれた処理へ戻る

処理5)から処理6)へ移行する時に割り込みが発生する可能性が在りますが
ローダの処理なので見なかった事にします。(~_~)

#UD の発生は オペコード 0x0FB9 を記述して UD2命令はは使用していません。

今回は TSS を使用した切り替えを行っていませんが 特権レベルが変化するような場合は
最低限の設定が必要なんでしょうか?
今回は、ss0/esp0 の設定しかしていません。

気になる点が有りましたら御教授願います。
0276ぴゅあ
垢版 |
2006/10/21(土) 20:58:34
解決したと言われているので問題なしだと思うけど

>気になる点が有りましたら御教授願います。
タイマ割り込みを使った検証をされていたのですよね
タイマ割り込みを使ってとか#UD発生に終始されていた感もあったりしましたが
DISK BIOSを呼び出す上でどのように考えられているのかな?
ってところくらいかな

なので、気になるって程のものでもないですけど
0277Be名無しさん
垢版 |
2006/10/27(金) 23:58:03
>DISK BIOSを呼び出す上でどのように考えられているのかな?
タイマ割り込みやキーボード割り込み等と同じ割り込み時のスタックを擬似的に再現して
任意のINT命令を発行する予定です。
0278277
垢版 |
2006/11/03(金) 01:16:51
取り合えず、DISK BIOSの呼び出しで1セクタの読み込みは出来ました。

ハードウエア割り込みとソフトウエア割り込みを有効な状態で
DISK BIOSの呼び出しが出来たので、ローダの主処理を作成します。

煮詰りましたら、その時はまた伺います。<m(__)m>
0279Be名無しさん
垢版 |
2006/11/04(土) 14:16:03
むこうのスレ人いないんでまたこっちにきますね
0280Be名無しさん
垢版 |
2007/04/10(火) 07:08:18
日本人が個人で作ってるOSは殆ど糞ばっかり。
0284Be名無しさん
垢版 |
2007/06/17(日) 00:34:01
TRONの入った家電に世話になってるくせに
0285Be名無しさん
垢版 |
2007/06/18(月) 19:25:46
TRON房は巣に帰ってください。
今時TRONを使ってる家電なんてほとんどありません。
0286Be名無しさん
垢版 |
2007/06/19(火) 15:47:22
意識していないだけで以外に入ってたり
まあ単機能の白物なんかには入れないと思うが
0288Be名無しさん
垢版 |
2007/08/24(金) 22:47:29
盛り上がらんね
0289Be名無しさん
垢版 |
2007/08/29(水) 01:31:20
x86で論理アドレスから物理アドレスに変換してくれるような命令はない?
リファレンス見る限り、見つからんのだが
ページテーブル引くコード書いてもいいんだが、さくっと簡単にできんかな
0291Be名無しさん
垢版 |
2007/11/28(水) 20:32:56
パソコンショップ最強リンク
http://want-pc.com
0292Be名無しさん
垢版 |
2008/03/28(金) 08:06:23
age
0293Be名無しさん
垢版 |
2008/03/28(金) 21:46:39
このスレもほんと錆びれたな
0295Be名無しさん
垢版 |
2008/03/28(金) 23:19:28
作ってる人もいなくなったんだろうな・・
0297Be名無しさん
垢版 |
2008/03/29(土) 08:26:29
ゲイツ君はボランティアが忙しいからなあ
0298Be名無しさん
垢版 |
2008/03/31(月) 02:00:55
ブートローダめんどくせぇ・・・
grubで手を抜こうとしたが、ELFのカーネルを
うまく0xc0000000に移動できないっぽい?
0299Be名無しさん
垢版 |
2008/05/24(土) 00:38:58
WindowsやX Windowってウインドウマネージャーとアプリケーションって表示内容を描画したフレームバッファってどうやって共有してるんでしょうか?
0300Be名無しさん
垢版 |
2008/05/24(土) 06:45:23
共有なんてしてないだろw
画面周りのフレームバッファいじるのは、ウインドウマネージャだけ。

アプリにできるのは、デバイスコンテキストに描画することまで。
ウインドウマネージャは、アプリの都合なんて関係なく勝手にアプリのウインドウを描き変えていく。
その時は、アプリにもメッセージを送ってくるけどね。

アプリもDIB/DIBSectionで独自のフレームバッファ(「自分で」描画する描画内容)を確保することはできるが、それはウインドウマネージャには何の関係もない。
0301Be名無しさん
垢版 |
2008/05/24(土) 14:17:26
>>300
共有という言い方が悪かったみたいでした。すみません。

アプリケーションが描画したものをウインドウマネージャーがウインドウ内に表示する仕組みが知りたいのです。
0302Be名無しさん
垢版 |
2008/05/24(土) 14:28:42
補足します。
アプリケーションを描画した結果に対してウインドウマネージャーがアクセスしようとする場合を考えます。
ウインドウマネージャーがスーパーバイザーモードで動作しているなら問題ないですが、
X Windowのようにユーザーモードで動作している場合はセグメント違反になると考えました。
ここの工夫をどうしているのかが知りたいです。
0303Be名無しさん
垢版 |
2008/05/24(土) 15:04:03
>>302
>アプリケーションが描画したものをウインドウマネージャーがウインドウ内に表示する仕組みが知りたいのです。

アプリの呼び出す描画APIに応じてGDIなりXなりの描画用サブシステムがウインドウ/スクリーン用に確保しているフレームバッファに描くだけじゃね?

とりあえず、画面(システム側フレームバッファ)の描画にアプリは直接関係ない(関与できない)。
0304Be名無しさん
垢版 |
2008/05/24(土) 15:13:47
なるほど、アプリケーションは描画をOS側に依頼しているだけって事ですね。
ありがとうございます。
0307305
垢版 |
2008/08/24(日) 16:25:14
使える言語はHTMLです
0308Be名無しさん
垢版 |
2008/08/24(日) 17:15:07
夏休みももうすぐ終わるだろうと思っていたら
またすごいのが来ましたな...
0310Be名無しさん
垢版 |
2008/08/24(日) 18:38:14
>>307
まずはAjaxでWebOSを作ってみると良いよ

>>309
OS kitの翻訳をしてみたらどうかな
0311Be名無しさん
垢版 |
2008/08/24(日) 19:22:04
WebOSってOSでもなんでもなく、ただのWebアプリケーション群と擬似デスクトップじゃん
馬鹿なの?
0312Be名無しさん
垢版 |
2008/08/24(日) 20:38:55
>>305
ここがUnilinwinmacbex part3スレッドですね。

>>310
Ajaxはコーディングが辛いよ。やってみると。
0314Be名無しさん
垢版 |
2008/10/21(火) 22:00:23
こんばんは。
法人でx86-64動作環境を作っている者です。

OSに同梱するフォントについて、質問よろしいですか?
問い合わせたところ、IPAフォントが使用ライセンスの関係で、
使えない事がわかりました。

そこで、ここの皆さんが実用に耐えれると思われるフォントがありましたら、
ご紹介願えないかと思い、書き込みしました。

詳しく述べるとTrueTypeフォントをビットマップとアウトラインに分離して、
少メモリ環境でも動作できるセグメント形式に変換したデータを使いたいのです。

動作環境の詳細につきましては、ホームページを参照ください。
それでは、よろしくお願いします。

http://www.gionel.com/
0315Be名無しさん
垢版 |
2008/10/21(火) 22:13:15
アウトラインフォントだけなら、VLゴシックと小夏がいい線いってる
合成フォントでは、小夏を元にM+を調整したSystemaが素晴らしい
ビットマップはM+あたりがよろしいかと

フリーに限らないなら、リコー、ニイス、より高品質ならタイプバンクあたりが良い
0316Be名無しさん
垢版 |
2008/10/22(水) 09:55:53
>315

ありがとうございます。
参考になります。
0317Be名無しさん
垢版 |
2008/10/22(水) 10:50:44
>>314
> 問い合わせたところ、IPAフォントが使用ライセンスの関係で、
> 使えない事がわかりました。

誰に何を問い合わせたらどういう理由で駄目なのか、というところですかねぇ。
ライセンス関係は俺様解釈で断定しちゃう人が多いですから、きちんと
当事者の意思を確認して本当に使えないかどうか確認したほうが...

あと、ライセンスは改訂作業中なので、
参考→ttp://www.ipa.go.jp/software/open/ossc/2008/font/koubo.html
そこらへんも考えに入れた方がいいかもしんないです。
0318Be名無しさん
垢版 |
2008/10/22(水) 13:15:42
>317
もちろん正式にIPA様より許諾できませんとの返事を頂きました。
早くライセンス改訂されるといいですね。
0319Be名無しさん
垢版 |
2009/10/14(水) 22:55:15
ttp://www.amazon.co.jp/dp/B002G3WVYM
TECH I 起動プログラムブート・ローダ入門

こんな本が出てたとは。中身まだ見てないので評価はなんとも言えんけど。
0325Be名無しさん
垢版 |
2010/01/31(日) 21:28:22
            _,,..r'''""~~`''ー-.、
            ,,.r,:-‐'''"""~~`ヽ、:;:;:\
           r"r          ゝ、:;:ヽ
   r‐-、   ,...,, |;;;;|       ,,.-‐-:、 ヾ;:;ゝ
   :i!  i!  |: : i! ヾ| r'"~~` :;: ::;",,-‐‐-  `r'^!
    !  i!.  |  ;| l|  ''"~~   、      i' |
     i! ヽ |  | |    ,.:'"   、ヽ、   !,ノ
    ゝ  `-!  :| i!  .:;: '~~ー~~'" ゙ヾ : : ::|
   r'"~`ヾ、   i! i!   ,,-ェェI二エフフ : : :::ノ~|`T <イエーイ、ひげぽん見てるー?
  ,.ゝ、  r'""`ヽ、i! `:、   ー - '" :: : :/ ,/
  !、  `ヽ、ー、   ヽ‐''"`ヾ、.....,,,,_,,,,.-‐'",..-'"
   | \ i:" )     |   ~`'''ー---―''"~
   ヽ `'"     ノ
0326Be名無しさん
垢版 |
2010/02/10(水) 22:31:50
ブートローダ作るのめんどくさい。
おまいらちゃんと作った?
パクり放題の手頃なブートローダとか有る?
0328Be名無しさん
垢版 |
2010/02/13(土) 19:00:08
>>326
Linux

……壁紙を変えてアプリをインストしただけで、どこがマイOSなのかと(ry
0329Be名無しさん
垢版 |
2010/02/14(日) 04:45:29
>>326
ttp://hrb.osask.jp/
ここのブートローダは自由に使って良いって書いてある
あなたが開発者本人じゃなければどうぞ

半年ぶりくらいに規制解除されたと思ったら
1週間経たないうちにまた規制された
おなじプロバイダにアホがいるとしか思えない
0330Be名無しさん
垢版 |
2010/02/16(火) 12:44:55
主要ispは人覆いからしょうがない。

プロバイダ主要各社 契約者数一覧(2008年12月末時点)
  ISP名        総会員数
OCN          731万人
au one net(KDDI)  340万人
ぷらら          282万人
@nifty          175万人
JCOM          149万人
biglobe          132万人
So-net           126万人
0333Be名無しさん
垢版 |
2010/09/29(水) 02:31:06
どなたかお助けください。
MBRの中で、HDDのカーネルを呼び出そうとint13h extension readを使っているつもりなのですが、エラーコード4のsector not foundで返ってきます。どうしても、HDDが読み取れません。どうしてダメなのかが分からない状態です。誰か助けて…。


.globl ipl_start
.code16
ipl_start:
jmp real_start

real_start:
cli
mov %cs,%ax
mov %ax,%ds
mov %ax,%es
mov %ax,%gs
sti

movb $0x80,%dl
movb $0x42,%ah
movw lba_command,%si
int $0x13
cmp $0,%ah
jz farjmp

0334Be名無しさん
垢版 |
2010/09/29(水) 02:32:14
rehalt:
hlt
jmp rehalt

farjmp:
ljmp $0x0009,$0xfc00


lba_command:
.byte 0x18
.byte 0
.word 0x0000
.long 0x0009fc00
.quad 0

/* boot sector signature */
.org 510
.word 0xaa55 /* singnature */
0336Be名無しさん
垢版 |
2010/09/30(木) 13:42:32
直接関係ないだろうけど9fc00hってBIOSの拡張ワークエリアじゃね?
0338Be名無しさん
垢版 |
2010/10/19(火) 17:41:37
HDからブートするようにするにはどうすりゃいい?

自作OSをマルチブートにしてやりたいんだが
0339Be名無しさん
垢版 |
2010/10/22(金) 14:16:16
そういうブートプログラム作って、パーティションの頭に書け。

んで、面倒な所はブートセレクタに任せる。
0340Be名無しさん
垢版 |
2010/10/23(土) 00:19:48
そういうブートプログラムって正直なにをどうすればいいのかチンプンカンプンなんだけど
できれば何か参考になるサイト教えて

一応FDブートだけするのは作ったことがある。
関係ないか
0341Be名無しさん
垢版 |
2010/10/23(土) 01:17:49
基本FDと同じだ。
int 13hのパラメータがHDD用になるが。

FreeDOSあたりまねすりゃいいんでないかい。
DOS互換ならどんなブートセレクタでも扱えるだろう。
0342Be名無しさん
垢版 |
2010/10/23(土) 03:31:52
プロテクトモードにしなくて良いならHDDブートは楽勝
0343340
垢版 |
2010/10/24(日) 22:52:19
int 13hのhd用パラメータは分かった。
ありがとう。

だが、すまんが
俺が知りたかったのは、フロッピーディスクでいうIPLの記述的なものなんだ。
それのhd版というかなんというか。

なにか分かったら教えてくれると助かる


0344Be名無しさん
垢版 |
2010/10/24(日) 23:32:11
ブートローダーでググってみたら?
一応言うと、510番地〜512番地間での間でマジックワード0xaa55を記載されたイメージファイルをハードディスクイメージとして、読み込むと、マシン起動時に0x7c00番地に512KBローディングする。

ちなみにイメージファイルはelfとかpeとかでなくて、マシン語のバイナリフォーマットじゃないといけない。

…でいいのかな?
0346Be名無しさん
垢版 |
2010/10/24(日) 23:38:54
そうだった512Bだった
512KBも読んでくれたら楽なのになあ…。
0347Be名無しさん
垢版 |
2010/10/25(月) 00:15:20
>>344
それはMBRでないかと思うわけだが。
マルチブートするならその辺はブートセレクタが使うのでどうでもいい。

んで、作らんといかんのはPBRなんだが。
これはFDのIPLと同じような構造でよかったような気がする。
0348Be名無しさん
垢版 |
2010/10/25(月) 00:18:49
MBRもPBRもほぼ同じわけなんだが
差はパーティションテーブルの有無くらいだろ
0349340
垢版 |
2010/10/25(月) 00:53:10

あー、なるほど

ということはhd版iplをとりあえず特定のパーティションの先頭に書いて
あとはそいつからカーネルをロードさせてやればいいというわけか。

面倒くさそうだな
0350Be名無しさん
垢版 |
2010/10/25(月) 01:07:53
どうせだから、ブートローダあげる

っていっても、上の方にあるやつだけどw
.globl ipl_start
.code16
ipl_start:
jmp real_start

real_start:
cli
xor %ax,%ax
mov %ax,%ss
mov %ax,%es
mov %ax,%fs
mov %ax,%gs
mov $0x7c00,%ax
mov %ax,%sp
sti

xor %ah,%ah
int $0x13

mov $2,%ah
mov $lba_command,%si

movb $0x80,%dl
movb $0x42,%ah
int $0x13
cmp $0,%ah
0351Be名無しさん
垢版 |
2010/10/25(月) 01:09:07

jz farjmp

rehalt:
hlt
jmp rehalt

farjmp:
cli
mov $0x7e00,%ax
mov %ax,%sp
sti
ljmp $0x0000,$0x7e00


lba_command:
.word 0x10
.word 16
.word 0x7e00
.word 0x0000
.quad 1
.quad 0

/* boot sector signature */
.org 510
.word 0xaa55 /* singnature */
0354Be名無しさん
垢版 |
2010/10/25(月) 16:56:21
>>333
「MBRの中で」とかいってるから違うっぽくね?

自分のOSをマルチブートさせたいって言ってるんだから、MBRにはgrubみたいなのを置くはず。
340は、自分のOSを置くパーティションの先頭で何をさせればいいのかってのを尋ねているんだと思われ
0355Be名無しさん
垢版 |
2010/10/25(月) 21:34:12
>> 354

あ。そういうこと?

じゃあ、osdev(英語の方)のスケルトンコードみてこいや〜としかいえないなー。あっちならgrub環境でのブートコード書いてあるよ。
0356340
垢版 |
2010/10/25(月) 23:00:22
>gt;355
そんなものがあるとは
できればリンク教えてくだされ
0357Be名無しさん
垢版 |
2010/10/26(火) 01:27:46
ううん。少しはググろうぜ

ttp://wiki.osdev.org/Bare_bones
0358340
垢版 |
2010/10/26(火) 16:14:12
>>357
あっ、ありがとうございますっ
0360Be名無しさん
垢版 |
2010/10/27(水) 09:01:42
どうすればいい?
というよりは、動作済みのロダくれくれに終わってるな。
うpもいいが解説も無いしw
0361Be名無しさん
垢版 |
2010/10/27(水) 17:48:37
まあ、結局そういうやつは仕組みを理解してないから
osdevなんかみてもわからないだろうな
0362Be名無しさん
垢版 |
2010/11/01(月) 17:52:54
別に分かるのが目的じゃ無さそうだし。
そして動いてもやっぱり使いにくいなでウィンドウズに戻っていく。
0363Be名無しさん
垢版 |
2010/11/20(土) 01:36:11
独自OS開発と聞いても、結局、POSIX互換OSばかり。
Unixじゃない、OSがみたい。
Monaは結局、POSIX互換だし。
0364Be名無しさん
垢版 |
2010/11/21(日) 10:47:35
>>363
意味不明だ。
そんなのおまいが勝手に作ればいいだけじゃん。
0365Be名無しさん
垢版 |
2010/11/24(水) 03:01:18
posixじゃ無い事で移植性が極端に落ちるからねえ。
自力で充実環境作ってくれるなら非posixもありだろう。int21ファンクションコール互換でも委員だしw

見たい邪なくて、見たければ手を動かして作って無料配布してくれw
レスを投稿する


ニューススポーツなんでも実況