「30日でできる!OS自作入門」
■ このスレッドは過去ログ倉庫に格納されています
プログラミングの基礎からはじめて、
30日後にはウィンドウシステムを有する32bitマルチタスクOSを
フルスクラッチで作り上げるという入門書。
ビギナーでも無理なく作成できるようPCの仕組み・アセンブラ・Cの解説から始まり、
試行錯誤を繰り返しながらアルゴリズムを学びつつ、
たのしく自由な雰囲気でOSをゼロから構築していくという、
他に類を見ない手法による、
趣味と実用と学習を兼ね備えたOS作成の入門書です。 というかOSに頼らずFDで起動できるメガデモが作りたい >>342
LILOで豪腕ブートすればいいんじゃねぇの?
ファイルシステムというかHDDアクセスの紹介無い・・・・
買って損した orz >>348
自分で調べろよ
というか和製OSでHDDサポートしてる奴って少ない気がする。 >>348
まあ30日でそこまでいくのは無理だろう。
つうか買う前に目次とか確認しなかったのか?
>>334
スーパー遅レスだけど
俺の持ってる本だと timerctl.using++; は /* うしろをずらす */ という for ループの
後にあるなあ。もしかしてその本は typo (バグ) のある版だったのかも。
>>337
>配列がグローバルならNULL初期化されているので、
グローバル変数の初期化って、要は変数が占めるメモリ領域の全ビットが
0になることだと思っていいんですかね?
なおこの著者は初期化ルーチンで構造体の必要な要素を設定しているようですが。 >>351
そういう意味でしょうな。
とりあえずこの本はC言語の参考書としては話にならんので、
まじめに勉強したけりゃ別な本をちゃんと読みましょう。
USB 接続したフロッピードライブからブートすることってできないの?
QEMU じゃ満足できなくなってきた・・・ >>353
USB-FDDからのブートに対応したBIOSであれば、
リアルモードでのint 0x13によるUSB接続のFDDアクセスに対応しています。
しかしプロテクトモードに移行した後は、BIOSの力を借りる事は出来ません。
つまりUSB-FDDにアクセスするには、USBの制御をしなければならないわけです。
USBの制御というとPCIの制御とUHCI、OHCIやEHCIの理解とそれに対するプログラミングが必要となります。
私は今USBの勉強中ですが結構大変だと思います。
16bitのOSを作るのであれば、BIOSの力を借りれば良いわけです。
32bitのOSを作るのであれば、カーネルを16bitモードの時点でどこかに読んでおいて、後で移動してあげるといいでしょう。
しかし自作ユーザプログラムの起動に関しては、先ほども言ったようにUSBの制御か、HDDを制御することが必要となります。
よって一番簡単なのは16bitモード専用のOSを作る事だと思います。
試しにBPB(FDDの第一セクタ)にプログラムを書き込んで、USB-FDDからブートすれば、
例えばint 0x10などの文字表示プログラムは動きます。ここら辺の話は、この本の知識だけでは厳しいかもしれませんね。 私はこの本を読んでいないのでハリボテOSの起動の仕組みは知りません。
本を読んで勉強して知識を得てください。
あとBPBじゃなくて、ブートセクタと書いた方が良かったかな。
とりあえず第一セクタね。 >>356
いや、タダの名無しだ。
自作OSは作っているが、表立って活動は無い。 >>354
USB-FDD動かすなら、自爆覚悟でHDD動かした方が簡単でないかと思います。
USB使えるようにしたほうがUSB-Memoryとか外つけHDDなんかが使えるようになって
遊びやすいんでしょうけど。
>USB 接続したフロッピードライブからブートすることってできないの?
はりぼてOSはBIOSでFDDにアクセスしてるから、問題なくUSB-FDDでもブートできるよ? >>358
いえ、まさにそのとおりでしょうね。現に私はHDD起動で動かしていますし。
FAT16はむしろFAT12よりも楽という面では、本当に扱いやすいです。
そこが現実的な落としどころなのかもしれませんね。
やっとこさウィンドウ作成まで辿り着いたぜ
文系出身の俺でもここまでは理解できるんだよな
ってかマウスカーソルもそうだけど、内部で変な配列作ってるのが気になるな
Windows とか Linux もそうなのだろうか?・・・違うよね
どうにかファイルでやれないものか・・・
でもフロッピーじゃあな・・・
とりあえずバージョン0にしといて
あとで自分で考えるしかないのか・・・ どうせ使うときは配列に突っ込まなきゃいかんので、最初から定義しておくのも
手抜きとしてはありじゃないですかねえ。
まあちゃんとやるならファイルから読めるようにしとくべきでしょうな。
肝心のファイルシステムの説明がないけど。
まあ作り終わったらタネンバウム先生の本でも読めばいいと思う それなら最初からそっちを読んだ方がいいと思うわけで
まともな本読んだら投げ捨てたくならないかい? まともな本を読んでも理解できない人が、
自己満足するための本じゃないの? まっとうな本→挫折→これ
というお金持ちはまあどうでもいい。というか投げ出した本くれ。
これ→物足りない→まっとうな本
だと最初のお金がもったいないべということで。
一通り終わった
結構良い勉強にはなったかな
少なくとも情処試験の勉強よりかは遙かに有意義だったと思う
実用的じゃないOSだけど、必要な基礎知識はWindowsやLinuxもほぼ同じでしょ
で、これからだけど、まずは真面目にOS作る時にも使えそうな関数や仕組みを抽出することから始めるかな
メモリ管理とかプロセス管理あたりなら実際にカーネルの一部とかに流用(アルゴリズムの修正は必要かな)できそうだし、
OS本体をキックしている部分(IPL+α)は他でも大いに参考になるだろし(大して変わらんでしょ)、
シート管理あたりも改造すればカーネルの外側部分にUIの一部として被せられる様な気がする
ま、とりあえずはショボイ組み込み系/制御系のOSでも作ってみるかな >>369
こりゃ!
「在日」は差別用語だぞ!
使っちゃあならねえ!
「戦時中に密入国した朝鮮民族の子孫」と言いなさい!
略して「チョンガー」だ! HariboteOSってモノリシックカーネルだよね?
だってカーネル空間ってか1つのアドレス空間で全部やってるじゃん
これをマイクロカーネルに変えるにはどうしたら良いのかな?
メモリ管理、プロセス管理、プロセス間通信だけをカーネル空間に置いて、
残りの機能(ファイル管理とか描画系(GUI)とか)は全部ユーザ空間で
実現する必要があるんだよね?
プロセス間通信ってのをどうやって実現すれば良いのか・・・
Windowsで言うところのメッセージみたいなもの? なんでこの著者は typedef とか switch を使わないのだろうか? >>371
>HariboteOSってモノリシックカーネルだよね?
いいえまったく違います。カーネルもシェルもグラフィックシステムも
ウィンドウマネージャもファイルマネージャもひとつにまとめた
新次元のアーキテクチャです。
>これをマイクロカーネルに変えるにはどうしたら良いのかな?
改悪は好きにすればいいさ。 >>372
使うとtypedefやswitchの説明を本文に書かなきゃいけなくなるからだとか言っていたよ
Cの知識は必要最小限にしたかったらしい
確かループはforオンリーでwhileも使ってないはず >>374
でもさ、typedef とかをこちょっと説明するだけで
結構ソースがすっきりすると思うんだけどな。。。
毎回 struct なんて書かなくて済むし、
if(...) {
} else if(...) {
} else if(...) {
} else {
}
なんて書かなくて済むよね。。。 まあ、プログラミングスタイルについて俺みたいな昨日今日プログラミングを
覚えたようなガキが語って良いことじゃないんだろうけどね。。。 >>373
モノリシックカーネルよりも更にモノリシック(一枚岩)ってこと?
あまりよろしくないな・・・
EXEとDLLみたいなファイルを作って別プロセスで動かしたいんだよな・・・ >>377
>モノリシックカーネルよりも更にモノリシック(一枚岩)ってこと?
そう。 >>375
31日目の内容から著者の考えを好意的に邪推すると
毎回structを書くのがダルいとかelse ifの羅列がうっとうしいと思わせた上で
typedefやswitchを説明したかったんじゃないかな
結局紙面の都合か書き忘れか何かでそれらの説明はないんだけど
不便さが感じられるのならそれは狙った効果なのかもしれない
そうだとしたら375がソースをtypedefやswicthを使った形に改めるのは
立派な進歩じゃないかな この本でC言語を学んではいけないと言うのが前の方にあったような気がするが…
厶板の方だったかなあ。
>>377
だからはりぼてなんだろう。
30日でまとめるために見栄え以外の部分は激しく適当だからな。
>>381
この本でCをマスターできるわけじゃないみたいな事も言っていたよ
最初からそんなことは狙っていないみたい
30日でできることは限られているんだし、もしこれ一冊でそこまでできるとしたら
他のCの教科書の立場が無いじゃんw だからそれでいいんだと思う
はりぼてはまともなOSを目指したわけじゃなくて、あえてツッコミ所満載にしてあって
読者が不満を募らせてそれを改良したくなるように仕向けているらしい
最初から立派過ぎるとやる気なくすから、自作を助ける本としては間違いだと
少なくとも昨年のOSCではそう言っていた だから>>373は悪意のある煽りだと思う 最近ではハイブリッドカーネルなるものが存在するらしいが・・・ >>383
それはOSサーバとカーネルを分けているが同じ空間で動かしているもの ド素人を感化させて取り込むための本
宗教みたいなもん >>387
そういう自覚があるなら、きっちり基礎から勉強したほうが
後々のためだと思うわけです。
この本買ってパラ読みしたけど、不要だと思ったからプログラミングしたことが
無いっていう新入社員にあげた。
そして2ヵ月後くらいに研修を見に行ってみたら、そいつだけ落ちこぼれてたな。
わけの分からないソースの書き方するわ、わけの分からない知識を持ってるわで
めちゃくちゃだったらしい。 可哀想なことをしたよ。
3ヵ月間の研修受けさせた後に、可哀想だから俺の下に置いたんだけど暇になった
時にちょっとしたツール作ってもらおうとしたら、"echo"すら作れないでやんの。
確かに研修は1ヵ月間入門書を教えて、後の2ヵ月間は自習させてたけど他の連中は
そこそこのツールは書けるようになってたのになぜだ?
そんなにこの本って悪いの?
とりあえず、プログラミングを始めて挑戦する人には向かないって事だけはわかった。 スレを見る限り、Linuxの理解には役立つかなぁとド素人的に思ったけど、
そーでもないの?
詳解 Linuxカーネルとか、パラ見したけど、サーパリわからなかった。 >>391
あー、そういう用途なら止めとけ。
間違いなく役に立たん。
>>390
本も悪いがおまいはさらに悪いな
責任とって教育しなおせよ
これはKとかLみたいな廃人になりたい奴のための本だろ >>394
カーネルの中身を知りたいんだろうからそれも違うような…
まあ考え方とか読んでおいても損はしないか。
定番はTanenbaum先生本あたりだが…これも読むための基礎知識を
先に身に着けないと厳しいだろうなあ。
この本をプログラミング入門用と判断する上司は嫌だな プログラミング入門書としてじゃなくて、不要だから上げたんじゃないん?
彼女に恋愛小説でおすすめを教えてくれと頼まれて
何食わぬ顔で官能小説の題名を教えて
後日ひっぱたかれて「この本は彼女には向かないってことだけはわかった」
ってたとえられそうなくらいにアフォだなこいつ
390には新入社員に本をすすめるだけの能力がないだけ
この件に限っては新入社員も本も悪いとはいえない この本は入門書として悪いっていう見本じゃないか?
「プログラミングの知識が無い奴が読むとこうなる」
っていう、見本にはなったと思う。 信者は意地でも養護したいんだな
意味の分からない例え話もちだして
どうしたいのだか 擁護とか言われてもこの本がまともだと言ってるわけでもないけどな >>394-395
レスありがとうです。
詳解 Linuxカーネルがサーパリだった自分には、理解出来なそうな予感、
だが、とりあえず、Tanenbaumの本探して読んでみる。
ググッてみたら基本と書かれてたので、
理解出来る様、気長にジタバタしてみる
先は長そうだな(´・ω・`) 信者とかどうでもよいが、プログラム未経験者にOS自作についての本を与えて
プログラムスキルが上達しなかったと言われても、?と思うんだ
それともこの本は世間ではプログラム入門向けとして評価されているのか?
C言語を学んだとき、OSについての知識はなかったよ。LinuxでもWindowsでも関係なく学べた
本を読まずに評価しているのは悪評が多い傾向がある、が見事に実現していますね >>403
stdioあたりでOS絡みの話が出てくると思うが。
うまく書いてある本なら意識させないで適当に話を進めるか。
>>405
たしかにC言語を解説するならシステムの話は出てくる。だが、WindowsでもC言語は学べた。
言語はシステムに依存しないように向かって説明される努力がなされている。i/oあたりは依存部分と非依存部分
に分けてプログラムするように解説してたよ。C言語なら必ずシステム依存部分について一言触れていると思う。
それでもIA32とか関係なく学習できましたよ。 そりゃまあ普通の本にCPU依存の話書いた所で誰も読まんだろう。
別に知らなくても普通に使ってりゃ困らんし。
昔はポインタの説明でセグメントまで出てきて、さらに難解な物に
してくれたものだが…
I/O回りはいろいろあるから一通り書いとかないとねえ。
買って損はしなかった
OSの仕組みを知るにはいいと思う
自分はファイルシステムとHDDアクセスに興味あったから少々物足りなかった
それを考慮しても夢のある本だと思います
次回はosaskの本出して欲しいな
10000円以内だったら絶対に買うとおもう >>412
お前の意見も聞いてねぇよw
無駄だろ?で、ここは誰の意見なら聞くんだい? 2ちゃんねる は誰かの意見を聞くところなのか?
公式ドキュメントのどこにその記述がある? まあ満足しているならいいんじゃないでしょうか。
ただ、1万あったら悪魔本かTanenbaumせんせいの本を買うべきだと思います。 c言語、アセンブラの説明は全部リファレンスとして付録にしてもらいたかった
おっさんの独り言・・・ 家の建て方って本がでたと例えるなら、その中でsin関数やら建築法の話が出てきて
その解説も一緒に載せろというのと言われてもなぁ。触れる程度で十分だと思う。
もっと極端に表現すると、数学を学びたいが日本語で書かれていて、日本語の解説も載せろって感じ。 誤 : その解説も一緒に載せろというのと言われてもなぁ
正 : その解説も一緒に載せろと言われてもなぁ
ごめん。夜更かしは駄目だね。 >>417は、
おれは、おじさんだから(ベテランだから)C、アセンブリ言語の解説は、本文にいらない。
って言ってんじゃない?
>>420
ベテランならこの本の中で欲しいのはブート手順の説明だけじゃねぇの?
悪いけど折れOSつくったから
DOS−Vパソコンネイティブ対応のやつ
デバイスドライバーは比較的広い層をカバーする予定
少しまちなー こういう場合は
もうすぐ折れOSが起動しそうです。
ご連絡先
な方がいいんでないかい。
あぁ?
いっとくが今日折れは不良を一人倒してきた
からんできたから、回し蹴りと顎にチンを食らわせたら泣いて命乞いしてきたよ
折れは眉毛も剃っているし頭もリーゼントだからな
その辺の不良には負けない。 アンドリュー・S・タネンバウム教授著の
「モダンオペレーティングシステム」
って本を買った
7千円(+税)という値段に驚いた 失礼
途中で書き込んでしまったYO
とりあえずこの本を色々と参考にして、
ハリボテOSをいじくってみようと思う
以上 >>429-430
参考にならんと思うが…
原型をとどめない所までいじればいいのか。
何だかんだと、言っても「30日でできる!OS自作入門」は、
通算、3万部売れたようだ!
こういう技術書は、1万部も売れりゃヒット本にランクされるようだから、
大ヒットだな。 その中で後悔してる人は何割くらいかな?
周りに4人買ったやつがいるが、一人は全く読んでなくて
2人は途中で読むのをやめ、一人は最後まで読んで後悔してた。 そう、売れたということは内容の証明にはならない。
出版社が儲かったというだけだろう。 後悔したやつらがこの本に何を期待していたのかはわからないな。
>>390みたいなバカが後悔しているのだとしたら、気にする必要はない。
バカに合わせて内容を落とす必要はない。
バカが損をするのはバカだから仕方ない。
内容を調べてから買えばいいだけの話だ。
いっぽうで、
ttp://d.hatena.ne.jp/hariboteOS/
とかをみると、この本が気に入ったやつがとりあえずいることは確かだろう。
もちろんごくわずかかもしれないが。
俺が言いたいのは、この本がいいか悪いかなんていう話は信者とアンチのキモイ言い合いでしかないってこと。
本当にこの本を必要としているやつがこの本を読めばいいし、
そうでないやつが買わずに済めばいいだけだと思う。
信者が「この本はいい」と一方的に言えば、勘違いしてよく考えずに買うやつが出てくるかもしれない。
アンチが「この本は悪い」と一方的に言えば、勘違いして読むべき人が読まずに終わるかもしれない。
だからどっちのカキコも有害。
まあ、この本に限らず、書籍ってそういうもんだろ? >まあ、この本に限らず、書籍ってそういうもんだろ?
オレは「書籍は気になったら買っておけ」派。
買ってみたけど役に立たなかった後悔より,絶版になってから気にかかる悶々とした後悔の方がはるかに大きい。
うちの書棚は95%が「役に立たなかった後悔」で埋まっているわけだがw
信者とアンチの評価する観点が違っているような気がするわけですが。
技術的に問題外なのでダメといっているのがアンチ扱いされているのはわかるが、
信者がどういう点で評価しているのかよくわからん。
分数の出来ない子にとって、分数電卓は神。当然信者になる。
が、分数出来る人から見れば分数電卓なんて邪道の極み→ゆとりを馬鹿にせずにはいられない。 >>437
>信者がどういう点で評価しているのかよくわからん。
これ本気で言っているのか?アンチでわざと言っているのでなければ、
かなり心が捻じ曲がっているんじゃないのか?
信者というか評価しているコメントは>>435のリンクとか、wikiにいけば容易に見つかるけど、
根拠はこの本でOSが作れるようになったと実感したとか、
ポインタがわかるようになったとか、そういう単純なこと。
どうして>>437にこんな簡単なことが読み取れないのか、むしろそれがわからん。
むろん、本当にわかったのかどうかは知らないよ。わかったつもりになっただけかもしれないしな。
でも実際に読後にOS書いている人たちもいるみたいだから、本当にわかった人もいくらかはいると思う。 >>433
よくわからんけど、ダイエット本とか禁煙本とか英会話本とかで、
書籍購入者のどのくらいが実際にやせたり禁煙できたり話せるようになるものなの?
もうちょっと近い分野で比べるとはじめて読む486の読者のどのくらいがアセンブリ使いになっているんだ?
その割合と比較してOS自作入門の達成率の悪さは突出しているのか?
その辺がわからないとなんともいえない気がするけど?
つうかまあ、>>433が危惧するまでもなく日本に3万人のOS開発者がいなさそうなことからも
達成率がかなり少なそうなのは自明だと思う。 >>440
あまり本題に関係ないが「はじめて読む486」はアセンブラを勉強する
本じゃないと思うですよ。
アセンブラを勉強するなら『はじめて読むMASM』だろうな。
最近だとTECH-Iから出てるアセンブラの本かな? ■ このスレッドは過去ログ倉庫に格納されています