OSを作ろうpart12
独自にOSを作っているまたは、作ろうとしている人たちのための
スレッドになればと思います。
■前スレ
OSを作ろうpart12
http://pc8.2ch.net/test/read.cgi/os/1108836476/ >>1-100
ハッカー気取りしたい年頃まで読んだ 前に誰かが要求してたcom64を正式にリリースしましたよ(´・ω・`)
ttp://meg-os.org/?Documents%2FCOM64 >>107
> 正式にリリースしましたよ
↓
ttp://meg-os.org/?Documents%2FCOM64
> この文書は正式な仕様ではありません。 おれぺこパクり疑惑はパクり元と法的に和解したのでもう追加訴訟はありませんので安心してください >>114は偽者です!
訴訟は継続中ですのでご了承くださいm(_ _)m まいらはメゴスが実機で動いてエミュで動かないをどう思いますか?(´・ω・`)
メゴスに興味ない(たぶんたくんさんいると思います)は除外で 実機を再現していないエミュのことを尋ねても・・・要はそのエミュが糞と言いたいのだな?
「そんなエミュは捨ててしまえ」
いいよこのレスを引用しても、クレームをつけた奴に見せるといい。 おらがいいたいのはそういうことじゃないだな(´・ω・`) 私はメゴスとやらに興味湧いてないので全然知らないが・・・
メゴスとやらに限定せずとも動かしたいと思えば私は実機で動かそうと思うし
実機で動けば別にエミュで動かなくても構わんと思う。
それは実機で動かしたいと思えば割り当てる実機を用意すればいいと思うところからだけど
動かせる実機が用意できるのに敢えてエミュで動かそうとは思わないし
割り当てられる実機がない場合として考えると
エミュを使ってまで動かしたいと思えるものかどうかによりますね。
そんなエミュでもウィンドウシステムなしで動くものとかないんだろうか・・・
と思ってみたりですけど。
設定により可能とかいうものがあったりするのかも知れないけど。。。
エミュで動いて実機で動かないだと、余程惹かれたものでもなければ
私は触る気にまでもならんでしょう。 本来は自分のWIKIなりなんなりで話題提議するのが筋だろうけど
たぶん意見集まらないと思って慣れない2chに緊張しながらかきこんでみたのでした 具体的にはPAEを使うかどうか迷ってるのだが
アーキテクチャ的にはPAE使った方がすっきりするけどPAE非対応のエミュが結構あって
だからといってPAEなし版を作るとメモリマネージャ再設計が必要になって(´・ω・`)ションボリ >>121
参加してあげたいが何せMonaの方に付きっきりなんで・・・ もう人が増えるとは思ってないし別に参加しなくていいですよ
ただ意見が聞きたかっただけですのでー PAEは頭から外しているので詳しくは解らんけど・・・
> アーキテクチャ的にはPAE使った方がすっきりするけど
と言っているところはよく解らんが
> PAE非対応のエミュが結構あって
は「PAE対応のエミュも存在する」ということも言っている?
1つでも"自分が納得できて"使えるものが存在するのならそれでいいんでないのかな。
それと同じものを使っている人には受け入れられて、他のものを使っている人からは貶され捲くったとしても、それは自分が使っているもの以外は否定とか考える人からの批判だったりすることが大半を占めたりするんだろうから仕方ないことだろうと思うけど。
> だからといってPAEなし版を作るとメモリマネージャ再設計が必要に
それでも万人に受けることを望むなら
"どうしよう…"と悩むことではなくて、"やる!"と決めて気合い入れて臨むことだろうと思うけど・・・
てか PAEに詳しくはないけど
物理メモリアドレス空間が広げられた以外の拡張部分とか絡むのかもだけど、基本はページテーブルだったりするものではないの?
PAEあり/なしでその辺りの差し替えで済まんのかな?とか思ってみたり
モジュール化はその差し替えが最小限で済むように考えられているかとかだろうし、それが困難だとすると、メモリマネージャ再設計の前にメモリマネージャ設計に問題がなかったかとかなってこないのかな?とか思ってみたり。。。
再設計が必要というその設計がどういうものか知らんし、判らんけどね PAEは物理アドレス拡張って名前の通り元々は4GB以上のメモリを扱うための拡張ですけど
そのためにページテーブルの構造が変わるのでメモリマネージャは完全に差し替えないとだめです。
それだけならメモリマネージャを二つ作るだけでいいけれどページング段数の変更などがあって
今のメゴスのメモリマップだとPAEの方が効率がいいように設計されてるのですよ PAEは古くはPenPROの時代に導入されたので今日のほとんどのCPUは機能としては持ってます。
しかしPAEを活用するOSがあまりないのでエミュ側も対応してなかったりするのが現状です。
現在確認できてるのはAMD64・PAE対応してるエミュとホストがPAE(DEP)モードで動いてるVMwareくらいですが
今の開発マシンがWINXPでDEP使えないのでVMwareが使えないのが痛みだったりします
(bochsやqemuが動いてもうれしくない ついでにいうとPAEはAMD64のページテーブルと非常に似てる(正確にはAMD64がPAERに似せてる)ので
64bitモードの切り替えがスムーズにできるかなぁなんて密かに考えてたりしたりしなかったりするわけですが
こんなに悩むくらいならPAEは切り捨てて普通のページングで動くように再設計した方がいいのかなあ(´・ω・`) >>128
今はエミュで動かないと叩かれませんか? >>123
そんな付きっ切りになるくらいだから相当の成果を上げてるんだよね? PAEの件は多少パフォーマンスが犠牲になるだけでPAEがなくても同じことが実現できる方法が
ひらめいたので解決しました。
お騒がせしました>< >>137
人生に勝負を掛けずにニートになった負け組乙 そんなことよりこのままシリアとイランが戦争に巻き込まれたらヤバいぞ
ミサイルが飛んで来なくてもガソリンは500円くらいに暴騰するぞ ___ _____________
:|.C組.. | || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
:|(゚ー゚*)| || 鳥取砂丘は無視!! 。 ∧_∧
 ̄ ̄ ̄ || \(゚ー゚*) 分かりましたね。
||____________ ⊂⊂ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄|
∧ ∧ ∧ ∧ ∧ ∧ |____|
(・,, ∧ ∧ ( ∧ ∧ ( ∧ ∧
〜(_( ∧ ∧ __( ∧ ∧__ミ・д・∧ ∧
〜(_( ∧ ∧_( ∧ ∧_( ∧ ∧
〜(__(,,・∀・)〜(_( ,,)〜(_( ,,) 先生、鳥取砂丘は嫌いです。
@(___ノ 〜(___ノ 〜(___ノ
(-_-)ピュアモウザイヨ・・・
/ は〜い、先生。 \ (∩∩) ___ _____________
:|.C組.. | || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
:|(゚ー゚*)| || 鳥取砂丘は無視!! 。 ∧_∧
 ̄ ̄ ̄ || \(゚ー゚*) 分かりましたね。
||____________ ⊂⊂ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄|
∧ ∧ ∧ ∧ ∧ ∧ |____|
(・,, ∧ ∧ ( ∧ ∧ ( ∧ ∧
〜(_( ∧ ∧ __( ∧ ∧__ミ・д・∧ ∧
〜(_( ∧ ∧_( ∧ ∧_( ∧ ∧
〜(__(,,・∀・)〜(_( ,,)〜(_( ,,) 先生、鳥取砂丘は嫌いです。
@(___ノ 〜(___ノ 〜(___ノ
(-_-)ピュアモウザイヨ・・・
/ は〜い、先生。 \ (∩∩) >>133
解決したとのことなので今更だけど、PAE使うのでもいいと思うですよ。
確かにPAEだったら実機で動くので。確認したことないけどw そんな面倒な処理ないと思うけど(既にページング使ってるなら >>152
だよね。
今気づいたがPAE使おうとも思ってないんじゃw >>150
単に例が少ないからでは。
>>154
CooSの人は「バグがバグバグ出てきて」って口走った時からひそかに応援してる。
CooSといえばメゴス+ristia。
もうTALもどきに手出す気はナイのか。 以前からゆってるようにあれの存在は当時のメゴスの重荷のひとつだったので
十分な開発者が集まるまで実現は厳しいでしょう 他スレに誤爆した…。
エミュレーターOS。
物理ハードウェアを均一の仮想化(バーチャル)ハードウェアとして、他のOSに提供する、
BIOS/EFIを拡張したようなOS。このOS用のドライバを内包する。
PC/AT互換機であれば命令コードの変換は必要ないので性能ダウンは軽度にとどまる。そんなOSが欲しい。
HDDも仮想化し、そのデータをただ複製するだけで、このエミュレータ上であればハードウェアを問わず同環境で起動可能。
バックアップソフトウェアも必要なし。複数のOSの同時起動も当然可能。
ParallelsのOS版みたいなもの。もっとハードウェアとの親和性を高めて。
PC自作erには便利だと思うんですよね。
M/Bやグラボなど、構成を変えても、同じ仮想化HDDで使用できる。
エミュレータOS側は再インストールとドライバインストールが必要かもしれないけど、
エミュレータOSにはユーザーデータや日常使うソフトウェアはインストールしないから、
大した手間にはならない。
これって作成可能だと思いますか?問題点があるとすればどういったとこでしょうか。
あと、例えば複数のPCにこのエミュレータOSのみインストールしておき、
安くなったフラッシュメモリ系デバイスに仮想化HDDデータを入れておいて持ち歩けば、
データだけでなく全ての環境がモバイル可能になると思います。 ただし個人向けじゃないけどな
Dom0,DomU,HVU Domainの区別は有るけど、Xenも>>158が求めている物に近いんじゃないかな。
| 何について調べますか?
| ┌────────────┐
| | 脱げ |
| | |
| └────────────┘
| [ オプション(O) ] [ 検索(S) ]
|
`──────────┐ ┌───
| ./
|/
___/:::::;;:ヽ_
___/::;;;/::;;;::/:::::::::\
/:::::ヽ::;//;;;;:::::::::::::::::ヽ
/;;;;;;;;;/^ i:jヽ;;;;;;;;:::::::}
/;;;;;;;彡 _ノノ ノヽ;;;;;;;;;j
(;;;;;;;彡' ̄`丶 _,-,ミ;;;;;;ノ
\;;;;;;(イ0iiiヽ {0i//ヘ'
ヽ/ヽヽ゚;;_ノ i;;ノi|_ノ
\t| ~‐' _, ~ )_)
○\ ‐=' /
`' 、イ
___,-‐i┘ └j‐-,___
__i~::::::::::::ヽ ヽ_/ ,‐':::::::::::::~i__
/ |:::::::::::::::::::∨∪∨::::::::::::::::::::| ヽ
| j::::::::i::::::::/ノ∧ヾ\::::::i:::::::| |
| |::::::::l::::::::>-人 -<::::::l:::::::| |
'l, /::::::::i;:;:::::::::::・:::::・:|:::::::::;;i::::::::| ,l'
'l,~| ̄i^ヽ;;:::::::,_:・:|:::::;;/ | ̄~| ,l'
'l,| ⌒~''‐--///へ-‐''~´⌒ |,l'
/ ̄ ̄ ̄`~'''──-'‐-ソ)))-──'''~´ ̄ ̄ ̄ ̄\
/ . \
\二二ニニニニニ二二二二二二二二二二二二二/ >>162
メゴスに対する真面目な要望なら本家wikiで話題提議おながいします
ネタにマジレスだったら・・・(;´・ω・`)
<チラシの表>
そういやいよいよcore2解禁すね
今月中に一台欲しい(´・ω・`)
</チラシの俵> >>162
ものごとを依頼するってのは場所とタイミングが重要なのよ。
あえて硫黄、食う気嫁 おまいら空気嫁は何を使ってますか?
おすすめとかおしえてください>< おはようございます(´・ω・`)
今日も一日
ねるー ROM数十KB、RAM1、2KBといった組み込み用ワンチップマイコンなどのための
簡単なOS(というよりモニタと言った方が合ってるか)を作ろうかと思ってます。
このリソースだと完全なタスク切り替えはたぶん無理なんで、関数をタスクに見立てて
特徴づけして呼び出すぐらいしかないですよね、たぶん。
なんか参考になるオープンソースのOSありませんかね。 どういうものを作りたいのかよく解らんけど
OSを作りたい?モニタ機能とかのようなライブラリを作りたい?
なんか昨今「OSという言葉」だけが独り歩きしてるような感が強くあったりしてる気がしたりだけれど・・・ 長文レスを長々と連続カキコすると読みにくいのでウザがられる。
かといって手短にすませると相手が理解してくれない。
さて、どうしたものか?
そうだ、パケット方式だ!
レスの内容を理解しやすいように短く区切って別々のレス番に書き込む。 >>176
とりあえずよく分からないのに書かないでください。
あと丁寧な言葉遣いを心掛けてください。 いいのいいのー。
ぴゅあタンはこのスレ第2のマスコットキャラクターだからー。 >>174
マルチタスクモニタすか。
仕事→素直に商用ITRON
学生→OSの本読め。コンテキストスイッチあたりは参考になる。
かなあ。
そういえばこのへんはどうやって勉強したか全然覚えてないのう… あ、なんかまともなレスが。
趣味→うまくいけば仕事に応用てな感じですかね。
主にファームウェアの開発を生業としていて、
いろいろ試行錯誤しているうちに中途半端なイベント駆動
なスタイルになったので、もう少しいじればOSっぽくなるんじゃないか?
なんて思った次第です。
雑誌の独自OS特集みたいな記事を見ては、ターゲットにMByte単位の
RAMを想定していたりして、がっくしです。 >>174
> 組み込み用ワンチップマイコンなどのための
と言っているのでいまいち判らんのよね
ワンチップマイコンを使って…なら、なるほど〜と思えたりもするのだけど
扇風機とかリモコンとかに入っているコントローラにOSの概念とか必要(有用)とされる場面が思い付かんのです。。。
OS,モニタと言っているものをどういう形で作り、どう使いたいのか
(オペレーティングシステムとしてのものか、普通にモニタ機能のようなものなのか…)とかが
いまいち見えんから判らん(そこまで必要なのか?)というところですけど
>このリソースだと完全なタスク切り替えはたぶん無理なんで
目的とかは置いといて、作ることだけで言えば
インターバルタイマ割り込みでレジスタの退避・復元をしてやる仕組みを作ってやるとかすればできると思うけどね
Z80が流行ってた頃にやってた書籍とかまだ手に入ったりするなら
参考にしたり移植したりするのもやり易いんではないかと思ったりするけど手に入るものかどうかは…
68000頃に見たOS-9とかでも、最近のIntelプロセッサのTSSとかでも(プロセッサ内で処理できたり拡張されていたりするけど)
基本的なところは変わってないと思うよ
参考になりそうなソースの所在は判らんですが
マトモではないか・・・ >>188
しょうがないな、、、
1990年代前半に雑誌「インターフェース」にマルチタスクOSの設計手法とソースが掲載されたよ。
タイトルは「マルチタスクマイコンの構造化設計」だったかな、ターゲットはH8/532。
同じ頃、「プロセッサ」という雑誌にITRON仕様OS設計ドキュメントが掲載されてたな。
俺もこれらの記事を参考に手持ちのポケコンのOSを作成したことがあるが、
マルチタスクモニタ・カーネル、ファイルシステム、コンソール/シリアルドライバ、基本ライブラリ
コマンドプロセッサなど全ファイルの合計サイズ(バイナリで)7kB、ワークエリア合計サイズ数百B位だったな。
(実行ファイル格納エリアを除く) なんか続々とレスが。ネタスレじゃなかったのね。
>>189
> 扇風機とかリモコンとかに入っているコントローラにOSの概念とか必要(有用)とされる場面が思い付かんのです。。。
そういうのよりはもうちょっと高度なもんです。
ACとバッテリーで駆動して、USBにつながってPCとゴニョゴニョしたり、
バッテリーの充電制御もせにゃならんかったり。
> 目的とかは置いといて、作ることだけで言えば
> インターバルタイマ割り込みでレジスタの退避・復元をしてやる仕組みを作ってやるとかすればできると思うけどね
いや、そりゃ作るだけなら作れると思いますよ。でもOSだけで
ほとんどのリソースを食いつぶすわけにはいかんので。 >>190
> 1990年代前半に雑誌「インターフェース」にマルチタスクOSの設計手法とソースが掲載されたよ。
インターフェースは2000年頃からしか持ってないっす…。
> 俺もこれらの記事を参考に手持ちのポケコンのOSを作成したことがあるが、
> マルチタスクモニタ・カーネル、ファイルシステム、コンソール/シリアルドライバ、基本ライブラリ
> コマンドプロセッサなど全ファイルの合計サイズ(バイナリで)7kB、ワークエリア合計サイズ数百B位だったな。
> (実行ファイル格納エリアを除く)
うーむ、これだけのものをこのサイズに押し込めたのはなかなかだと思いますが、
やっぱワークエリアを結構食いますね。 実は数百バイトでもきつい、基本的にスタックはタスクごとに確保するのが仕様なんで… 遅いからもう寝ましょう、あしたもいっぱい飛ばなくちゃ… 自作系のOSでAC'97とかサポートしたらいいのに…。
最近のやつはSoundBlaster互換じゃないからBEEPしか出せなくて困る。 Linuxの例だとAC'97といってもマザーボード毎に違うドライバが必要みたいだぞ?
共通のドライバで解決ってわけにはいかない予感 IPL からカーネルローダ経由でカーネルを読み込むプログラムを作成しているんですが
カーネルローダでプロテクトモードへ移行しています。
(半年ほど放置してましたが…)
割り込みコントローラの初期化はプロテクトモード前と後のどちらで行った方が
良いのか教えて下さい。
現在は、アセンブラの CLI 命令でソフトウエアー割り込みを禁止しをして
プロテクトモードへ移行後に行っています。
自分的には、プロテクトモード移行時に
プロテクトモードでのソフトウア割り込みの設定を終わっているので、
1)リアルモードで CLI 命令でソフトウエアー割り込みを禁止
2)リアルモードでの割り込みコントローラの割り込み禁止
3)プロテクトモードへ移行
4)プロテクトモードでのソフトウア割り込みの設定
5)プロテクトモードで割り込みコントローラの初期化
と、思っています。
好きな方でいいと思うよ
どちらかというとプロテクトモードに以降後の方が若干いいかも
(移行直前までの割り込みは全部BIOSに投げる・以降後の割り込みは全部OSが受ける)