「OS自作入門」

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2006/07/07(金) 00:40:20
・著者:川合秀実
・定価:3,990円(税込)
・B5変型判 722ページ
・ISBN4-8399-1984-4
・発売日:2006年02月28日

■内容紹介
プログラミングの基礎からはじめて、
30日後にはウィンドウシステムを有する32bitマルチタスクOSを
フルスクラッチで作り上げるという入門書。

ビギナーでも無理なく作成できるよう
PCの仕組み・アセンブラ・Cの解説から始まり、
試行錯誤を繰り返しながらアルゴリズムを学びつつ、
たのしく自由な雰囲気でOSをゼロから構築していくという、
他に類を見ない手法による、趣味と実用と学習を兼ね備えた
OS作成の入門書です。

2006/08/14(月) 06:45:18
最近のCPUということでいえば、既にマルチチップorマルチコアが主流なのでマルチスレッドでないと話にならない。
#純粋な1コアCPU一個で勝負するなら、シングルスレッドの方が速いとは思うが。

それはいいとして、そのOSは事実上GUIもマルチメディアも捨てるということになるぞ。
2006/08/16(水) 18:58:13
>>109
速く計算させたいならMS-DOSで動く「応用ソフト」作ってその中でガンガレ。
計算させるだけなら基本ソフト作る必要性もないだろう。

ただし、16ビット演算にする必要性とファイルサイズを64KB以下にする必要性が生じるが。
2006/08/16(水) 19:22:08
>それはいいとして、そのOSは事実上GUIもマルチメディアも捨てるということになるぞ。
あほか
2006/08/16(水) 20:53:15
>>112
シングルタスクでそれらをどう実現するの?
少なくとも>110は完全否定していないようだけど、漏れには無理なように思えるんだ。
2006/08/16(水) 21:55:15
お前Windows1シリーズしってるか?
2006/08/16(水) 21:57:02
あと、初期のマッキントッシュもシングルタスク
古い絵描きソフトにもシングルタスクの名残でMDIじゃなくてウインドウがいっぱいに分かれてるやつあるだろ
ああいうのは全てシングルタスクで動いてた

てかよくマルチタスクとかいう言葉を出しといて、シングルタスクじゃGUIは出来ないとか抜かせるな
お前の技量が全く足りないだけだろ
2006/08/16(水) 22:51:25
>>115
恥ずかしいよ、お前
2006/08/16(水) 23:31:14
>>116
俺はなにがはずかしいのかわからないんだが?
Windows 1シリーズはどういうものかしらないから、
そこは正しいかは知らないけど
2006/08/17(木) 00:01:42
論点がズレテルからだろ・・・
119113
垢版 |
2006/08/17(木) 01:20:16
なるほど判った。
元々の>>109は計算速度を優先させたいと言うことなのだからその演算タスクでGUIの面倒を見るのは論外なわけだ。
確かにマルチファインダーが出る前のMacは演算中にはGUIも止まってたもんな。
#それはわかったとして、Windows1の頃はタスクスイッチングしてたと思うのだがあれはマルチタスクとは言わないのかな?
2006/08/17(木) 02:10:16
いや
シングルタスクでGUIは出来ないとか抜かしてるアホに教えるには十分
2006/08/17(木) 10:09:48
Windows3.1すら知らない世代か…
あ、あれは似非マルチタスク?
2006/08/17(木) 23:05:13
3.1はちゃんとしたマルチタスク。 実装が頭悪すぎただけ。
2006/08/17(木) 23:12:22
そんな事はない

ユーザーが馬鹿だっただけだ!
124109
垢版 |
2006/08/18(金) 00:55:39
えっと、たとえば200桁くらいの素数を探すのに利用したいんです。
最新のCPUをつんだPCが計算が速いのは当たり前。
でも、このシングルタスクOSを載せた1、2世代前のPCでも
最新機種と同等の計算速度が出るよ!みたいなOSがあればなぁ・・無ければ作りたいなぁ・・と。
なのでぶっちゃけCRTつながんなくてもいいです。RS−232Cかなにかで親PCに繋げてひたすら
見つけた素数を送り続けるような・・・

バカな考えでしょうか?もしかしてOSわざわざ作らなくてもいけますか?
2006/08/18(金) 02:18:09
OSを作ってさらにパフォーマンスを上げるのであれば、既存のOSを上回る
CPUドライバなどいろいろな面で、かなりの労力が必要。
本当に単一ならある程度は出来ると思うけど、これくらいもわからないと
ころから始めるのであれば、出来るころには今の最新マシンが10世代くら
い遅れてるかもしれないんで、今最新のマシンを使ってやればいいと思う
シリアルコンソール使うにもそれのドライバが必要。
この本読んでも、蒸気のことには何の役にも立たない
2006/08/18(金) 21:42:38
文部省の人見てますか?
これがIT先進国日本の現状ですよ
2006/08/18(金) 21:52:19
こんな過疎スレをもって、日本の現状などと言われましても・・・
2006/08/18(金) 23:34:49
>>126はどれに対していってるの?
2006/08/19(土) 00:39:39
>>128
>>3
2006/08/19(土) 11:52:43
素数見つける専用ハードウェア作ったほうが早くね?
2006/08/19(土) 12:42:29
>>124
既存のマルチタスクOSでも不必要なサービスを止めたり、タスクの優先度を変更すれば
それほどシステムに処理能力を持って行かれることはないと思うが。

どうしてもシングルタスクがいい!って言うのならOS作るより MS-DOS + 32bit DOS Extender
辺りを使った方がいいだろう。
少なくとも自作OSよりはマシな開発環境が揃えられるだろうし。
2006/08/25(金) 19:08:20
> RS−232Cかなにかで親PCに繋げてひたすら
>見つけた素数を送り続けるような・・・

これで良いなら、計算プログラムにイニシャル部と通信部を付け加えるだけで、
OSなんて高級なもの要らないぞ。

memtest みたいにフロッピー1枚で収まるだろ。
133Chia
垢版 |
2006/08/25(金) 21:21:17
おまえらまじですか…
定計算させるなら、FPGA以上に早いものはないと思うけど…
それ専用の計算装置を作るんだから、PCで専用OS作るのなんて比べ物似ないくらい早い

どれくらい高速かと言うと、作る人ののうみそにもよるけど自分が作ったのは
Zip2.0のパスワード解析で22.4MPass/sでた。
参考までにCPU: Athlon64 x2 4200+ soft:Advanced Archive Password Recovery
のマシンだと、17.8MPass/s。
クロックでいうとたった80MHzでこのスピードが出る。
俺でもこのスピードが出ると言うことは、本気でやるともっと出ると思うよ。
RS-232Cでデータをリンクさせるっていうのも、まさにそれだし。
2006/08/25(金) 22:04:36
>>133
ヒント:コスト
2006/08/25(金) 23:48:04
ClearSpeedなら96並列演算できるが、ボードもSDKも定価は200万だった希ガス。
Xtrillionなら96並列orベクタ演算できるが、SDKは未だなかった希ガス。
FPGAボードもあるけどこれまた安くないし……
2006/08/25(金) 23:55:47
大学の実習でFPGAに触って、興奮してるんでしょ。
137109
垢版 |
2006/08/26(土) 02:29:05
みなさんどうも。
低コストで早い演算を・・とおもいここに書き込んだんですけど、
なかなかそう都合のいいものはないんですね。
マルチタスク→割り込み頻発で速度遅い シングルタスク→割り込み少なくて速度はやい
っていうのは、昔の発想だったのかな?

MS-DOS + 32bit DOS Extenderというのも確かにありかと思いますが、
今のマシンで動くMS-DOSというのはあるのでしょうか?(動作保障外だったと思うのですけど、動くことは動くのかな?)
DR-DOSなんてのも昔あったような記憶が。。探してみようかな?

PS3に個人向け開発環境がでたら、それも選択肢かと思うんですけど、PS2の時の二の舞開発環境ならダメですしw
そもそもPS3に個人向け開発環境が出るのかもまだ分かりませんし。

色々どうもありがとうございました。(ぺこり)
2006/08/26(土) 04:04:31
>>137
>今のマシンで動くMS-DOSというのはあるのでしょうか?
つ FreeDOS

DOSを起動させるだけでいいのなら、WinXPで「MS-DOSの起動ディスクを作成する」に
チェックを入れてFDをフォーマットするだけでおk
2006/08/26(土) 18:11:20
FPGAのスタータなんて3万も出せば買えるが…。
80MHzって言ってる時点で、スタータだろ‥。
俺はそこにお前らまじか‥。
2006/08/30(水) 16:07:38
BIOS画面で、余計なIRQ全部カット
DOSのディスク作って余計なデバドラ全部削除。

それにさ、プログラムの質でも速度はずいぶん違うんだから、
ネイティブコード見ながら改良の繰り返し。


これで我慢しれよ。



2006/08/30(水) 19:21:56
>>139
レス見ててもわかるけど、レスした奴にFPGA使ったことがある奴はいないと思う
2006/11/16(木) 12:38:35
保守
2006/12/02(土) 11:38:32
>>142
>>2
144デフォルトの名無しさん
垢版 |
2007/03/10(土) 13:48:25
安い本体買ってきて試してみようかな
エミュでもいいけど、実機で動いたほうが感動するし
2007/03/23(金) 17:35:15
この本3つに裂いて読んでるところです。
軽くなってイイ!!
2007/03/23(金) 20:57:09
>>145
古本屋に売り飛ばしたりしないんなら、この手の本はそうするのが正解かもしれんわな。
でも、図書館で借りた本でそーゆーことすんなよ。
2007/03/24(土) 00:06:03
裂き方にもよるな
文字とそれ以外に分けて裂いたり
拍子ビリビリとかにしても軽くならないし
2007/04/01(日) 11:00:24
たしかに、正直重いよこの本…
149デフォルトの名無しさん
垢版 |
2007/04/08(日) 10:09:38
つまり、付属CDにpdf版もインストールしとけ、ってことですか?
150デフォルトの名無しさん
垢版 |
2007/04/08(日) 13:03:28
>>65
ICE使うとハード壊れない?

いま、SlingShotっての使って作業してんだけど、
ハード壊れたら怖いなーと思ってる。。
気にすることないのかな?

破壊を防ぐには実行前のレビューをして責任を分散
することでしょうか?w

つか、レビューもろくにしてくれないチームなんだよな・・。

2007/04/08(日) 16:06:42
>>150
ICE使っても壊れるときは壊れるよ。
2007/04/08(日) 16:42:45
壊れるのは、
・単なるミス
 例->入力ポートに出力して過負荷になって壊れる

・他の要因
 例-> LEDのダイナミック点灯のように、止めてしまうと定格を越えてしまう場合に
  他の奴が割り込み禁止期間をそれ以上かけてしまった

とかであって、単なるミスはICEでステップ実行でもすれば防ぎやすいのかもしれないが
ICEを使ったら防げるというようなものじゃない。

逆にダイナミック点灯の停止のような問題があるとICE入れてもブレークポイント仕掛けられないしね
2007/04/10(火) 07:05:41
ブログ読んだ。
名前もメールもhariboteosだけど、
hariboteosって名前がでてくんの三日目からじゃない?
2007/04/10(火) 23:38:58
>>150
まて、そもそも >>65 はやり方に従わなかったか教えなかったのが悪いんであって
ICE使う使わないは関係無いんじゃ…
2007/05/03(木) 23:33:02
電子工作入門
2007/05/04(金) 16:03:27
この本つまんねぇww
図書館でパラ見してみたけど、「こうやってください」、「こういうものです」、「ここはこうやります」的なことしか書いてないじゃんw
「自作入門」じゃなくて、「こうやってください」じゃねぇかw
2007/05/04(金) 16:25:58
最近そういう本多いね
マニュアルやヘルプ見れば分かる内容を
なんでわざわざ劣化コピーしてまで出版するのか
売れるからなんだろうけど買う方にしてみたら騙された気分
2007/05/04(金) 16:43:12
>>156
入門書とはそういうものです。
2007/05/04(金) 21:03:36
>>157
さすがにマニュアルとヘルプから「OS自作入門」の内容を自前で書ける
人間はいないだろ。理科年表があれば自動車くらい作れるはずという位に
かけ離れている。
2007/05/04(金) 21:09:57
>>159
理科年表があっても自動車作れないの? お前、馬鹿?
2007/05/04(金) 21:51:35
むしろ理科年表見ただけで自動車作れる人間を見てみたいな。

もちろん、自動車に関する知識がある人は無しで。
2007/05/04(金) 22:30:58
疲れたから説明は後回しって、おいw
2007/05/04(金) 22:34:18
>>161
俺は、むしろ理科年表だけを材料に自動車を作れる人間を見てみたい。
2007/05/26(土) 14:28:41
俺も>>160が言うような奴を見てみたいw
もちろん>>160は作れるんだよな?
2007/06/17(日) 10:54:31
OS自作入門を市立図書館で借りてきた。
30日以内に20日目(395ページ)までの目標を達成して
どっかのアプロダにそこまでのモノをあげてやんよ
べつにそれをDLしろって言ってるわけじゃないんだからな
2007/06/26(火) 13:19:33
>>165
図書館に置いてあるのかうらやましい
正直あの本にあるやつをただコンパイルするだけでできるからなそんなん
本で紹介してるもの以外に何か機能つけるくらいしないと評価してもらえんよ
2007/07/11(水) 01:01:46
最後までセグメント一辺倒でいくのかー。
ページングに関しては紙面を割けませんかそうですか。
世の中にはx86しかCPUは存(ry
2007/07/11(水) 12:48:48
そのむかし、ページ単位で管理するのは無駄が多いとかなんとか
言ってた気がする。
その影響でしょうな。
169デフォルトの名無しさん
垢版 |
2007/07/16(月) 23:25:56
最近読みはじめたのだけど、使ってもいいメモリの位置とか結構適当なんだね。
FDに書き込まれるプログラムの位置もバイナリ直接みて判断してるけどこんな適当でいいの?
170デフォルトの名無しさん
垢版 |
2007/07/17(火) 07:22:32
>>165
UPまだ?
2007/07/17(火) 12:55:58
>>165
図書館だと一週間で返却すんじゃねの?
2007/07/18(水) 00:10:29
図書館によるでしょ
運営市区町村によって貸し出し期間は案外違う
2007/07/30(月) 22:59:12
そうだそうだ!!
おれんとこだと2週間だ
2007/08/03(金) 10:38:30
>>168
>そのむかし、ページ単位で管理するのは無駄が多いとかなんとか

昔のメモリの少ないマシンを想定しているということだろうか。
さすがにOSASKはページングなんでしょ?

著者の態度として、技術的な事は、たぶん初心者のためと思ってかなりミニマリズム
に徹している感がある反面、変なおしゃべりみたいなのがやたらあると言う...
まあ好きずきだけどな。
2007/08/03(金) 11:23:25
>>174
普通にセグメントになってます。
2007/08/03(金) 23:27:12
>>175
え、そうなんだ。
OSASKの解説をwebでちら見すると... 確かに、メモリ保護の観点では
セグメントはいいのかもしれない。
ただ、いまどきのOSには大抵ある仮想記憶の各種最適化方法はページングなくして
は使えないような... セグメントなりのやり方があるのかな?
2007/08/14(火) 16:29:24
夏休みだから、久しぶりに読んでみようかな。
去年の秋に、自室が狭いんで、ベランダにビニール袋に包んで放置したままだったから。

時々無性に読みたくなる時もあったけど、面倒臭さには勝てなかった。
2007/08/18(土) 15:01:50
これアセンブラが独自じゃなかったら最高だったのに
2008/01/11(金) 23:30:33
立ち読みしてて、もれなく付いてきますとか書いてある所まで読んだ。
読んでて嫌気がする文が所々にあった。
2008/03/04(火) 02:42:29
低年齢向けだもの
2008/03/04(火) 02:59:04
>>178
ML見てたら、「規格は重要だと思わない。守る必要はない。」とか言ってるか
ら、独自技術症候群の方なんじゃないの。
2008/03/04(火) 08:40:37
gasはx86アセンブラとしては使い難い。
せめてnasmを使いたいところだし、
アセンブラぐらい自作でもたいしたことはない。
2008/03/20(木) 18:19:46
メモリの上限調べるの、あんなやり方でいいのだろうか?

実装範囲を越えたらリピートイメージが読み出されたり
バスエラー起きたりしないのかPCAT互換アーキテクチャは…
2008/03/20(木) 18:56:19
2GBか4GBか超えるとそうなるよ
2008/03/21(金) 12:19:11
Kは仕様とか規格なんてどうでもいいって言ってるやつだから仕方ないよ。
その言葉を見て、OSASKから手を引いたし。
2008/03/21(金) 23:26:45
>>183
PC/ATはメモリのない所は拡張バスの方を見にいくので、
イメージが見えたりはしない。
68kみたいなバスエラーなんてものはx86には存在しない。

まああのやり方だとメモリじゃないものをメモリと誤認識する
事があるので、エラいことになるかもしれないわけですが。

たぶん4G積んでるPCではかなりの確率でそうなるんでないかと。
2008/03/22(土) 12:55:11
OS作ろうと思って調べているけど、ATってBIOSだのリアルモードだの「過去」を引きずって汚いシステムなんだね・・・。
いっそ、まったく新しい現代的アークテクチャの64ビットマシン作りたくなってきた。
2008/03/22(土) 13:34:57
>>187
ブート部分は、どのOSも似たようなもんだから、そう言うところは
パクレばいいんじゃない。
2008/03/27(木) 16:55:48
OS作るならブートローダーだけは作っちゃいけねぇ・・・
2008/03/27(木) 19:23:28
ブート部分は既存のをぱくって、その先を作るとかいう本があればいいのに。
191デフォルトの名無しさん
垢版 |
2008/03/27(木) 22:22:46
o
2008/03/28(金) 00:09:31
>>187
過去が全く無い64bitつうとAlpha位しか思いつかんが…

とりあえずx86を捨てれば幸せになれそうな気がする。
2008/03/28(金) 07:18:33
>>192
AlphaマシンがBIOSでx86をエミュっててx86用のVGA BIOSを使って初期化したりしてたの知ってる?
2008/03/28(金) 21:48:39
SFにToroOSっていうのがあって、FPCで書かれてるんだけど、

えらいソースは短くて読みやすいので、それで勉強してます。

いいとこまで出来ているような気がするのですが、
しかし、もったいないことに、放置されてます。

これ、仮想マシン上でブートできるけど、実マシンで
ブートできないのは、ナゼですか?

あと、ネットワークでブートするようなOSにしたいんですが、
なにを勉強すれば良いですか?
2008/03/28(金) 22:34:54
>>194
> これ、仮想マシン上でブートできるけど、実マシンで
> ブートできないのは、ナゼですか?
ソースを改造してint 10hとか埋め込みまくって自分で調べなさい。
そうやって自分の手を動かすのが勉強というものだ。

> あと、ネットワークでブートするようなOSにしたいんですが、
> なにを勉強すれば良いですか?
通信はNICのBIOSがやってくれるから
ブートするだけなら自分で通信コードを書く必要はない。
PXEサーバとBOOTPサーバを立ててIPLを送り込みなさい。
2008/03/28(金) 23:02:44
>>193
AlphaならケチくさいこといわんでTGAを使うべきでないかと。
2008/03/29(土) 01:54:19
>>188
>ブート部分は、どのOSも似たようなもんだから、そう言うところは
>パクレばいいんじゃない。

一般的にはハードやブートの情報を取ってこないといけないし、
OSのカーネルのバイナリフォーマットも違ったりするし、
ある程度ブートローダには手を入れないといけないよね。
あ、それを「パクる」というのかw
2008/06/08(日) 01:31:23
誰かこれでOS作れるようになった?
2008/06/08(日) 01:41:20
>>198
たぶん、あなたが想像するようなOSは作れないだろうけど
組み込みに使えそうなシンプルな物を作った人はいるかもしれない。
2008/06/09(月) 10:38:07
>>199
そういう方面に要求されるような事にはまったく触れていないので、
多分いない。
2008/06/11(水) 20:54:43
正直、この本はOS開発に少し興味がある人がその好奇心を満たすだけの本だと思う
2008/06/12(木) 14:07:03
>>201
それでいいような気が・・・・
2008/06/13(金) 19:26:38
OSが作れるとか言うのはともかく(おい)、
こういう、ハードに近い部分のコードを一行一行いい意味でチマチマ説明していく
タイプの本は、かえって新鮮だなと思った。

ちなみに、一見詳細に説明してあるように見えて、よく読むと新しい概念を説明なしに
どんどん登場させているので、本当に知らない人が読みやすいのかという疑問はある。

でも、読む側もよくわからないことはとりあえず放置して進むことも大事なのかな。
プログラミングを長年やってると「定義は、それが参照されるまでに行わねばならない」
とか思っちゃうけどw この手の本で真面目にそれをやると、前半部分が超重くなりそうだし。
2008/07/01(火) 20:21:38
http://etc7.2ch.net/test/read.cgi/siberia/1214904062/
2008/07/02(水) 21:53:23
OS作るのに必要なファイル類はどんなのでしょうか?
2008/07/02(水) 22:18:50
ファイルの概念のないOSも有るまする
2008/07/02(水) 23:24:41
ソースファイルとヘッダファイルとメイクファイルぐらいじゃね。
2008/07/03(木) 02:58:34
メイクファイルなんて根性があれば要らないじゃん
2008/07/03(木) 05:21:52
>>208
そう思っていた時期が俺にもありました。

ヘッダを更新した時に、依存してる奴のコンパイルを忘れて
謎の現象に悩むことになるんですな。
で、原因に気がついたときにものすごい疲労感に襲われると。

常に全ソースリビルドすればいいとか言わんように。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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