課題研究でつくってみる自作 OS - 1

30日でできる! OS自作入門
川合 秀実
毎日コミュニケーションズ
売り上げランキング: 5269
おすすめ度の平均: 4.5
5 非常に有意義なOS作成本
1 ファイルシステム無しではOSと言えない
5 とても面白い
5 ハッカーへの最短距離?
3 GUIより肝心なこと

 

先日、課題研究のことを少し話したと思うけど・・・。

自作 OS の作成ということにテーマを決めて進めることにした、ということを書きましたね。

これから、課題研究の進行をこのブログに書き留めて生きたいと思います。

そこで、まずはプログラミングに関しての知識はある程度あるものの、どうやったらディスクからブートするかということも知らない僕にとっては、何も資料がない状態では無理に近いです。

というわけで、早速資料探し。

そこで見つけたのが、この本。

軽く読んでみたが、ここまで作れちゃうのか、というほど。

個人的には、GUI は使えないとなぁと思っていたけど、ここまでこの本に収まるぐらいの物で作れるとは思わなかった。

 

というのも、この本いろいろ飛ばしてるというか、ハードウェアに関する知識や OS の基礎をすっ飛ばしてるような感じです。

これに関しては、賛否両論がありますが、僕が考えるにそういうことは、この本の先をやる上で学べばいいことで、その辺の面倒な説明はすっ飛ばしておkだと考えます。

というか、個人的には、学校や自分の知識として、そこらへんは大体把握していると思っているので、まあ僕にはそれぐらいがちょうどいいか。

思うんだけど、本って興味をもてればいいと思うんだ。

それで読んで、その先は各自ネットとか、もっと先へ進んだ本へ。(といっても、自作 OS について書かれている本は皆無に近い)

実際、売られているプログラミング関連のほうも、最初のほうに座学的な内容がずらずら並べてあって、正直やる気なくす。

何もやったことない人に向かって、オブジェクト指向とは何か、データ型とは何か、OS ってこんなことやってるんだぜぇ~なんていっても、わかるはずがない。

正直、いきなり "Hello, world" や、とりあえず何かをやるプログラムを作らせて、あとから説明したほうがわかりやすい。

マイコンカーの 1 年教育をやって、なんとなくそういうことがわかった。

本を書いている人は、教える人が見えないから、なかなか大変なんだろうなぁと思ったり。

1年に、いきなり CPU となにか、H8 マイコンとはなにか、C 言語とは何か、さらには PWM とかいろんなことを教えても話にならない。

あの反応は、明らかに頭が "はてなマーク [?]" で埋め尽くされているような感じがする。

いきなり、走らせてあげたほうが、よっぽど実感がつかめるのではないかと思って、いまはミニマイコンカーをいじらせているが。

それに、男と女だと頭の構造も違うだろうから、今年は特に大変なような。

 

で、本題に戻る。

この本は、とても自作 OS に興味は持ったけど、知識がない人にとっては絶好の資料だ。

ただ、ちょっと斜め読みしただけだけど、アセンブラと C 言語は知っておいたほうがいい。

幸い、アセンブラは基本情報のとき CASL を一応触っておいたし、C は普通に組めるので、ここは問題ない。

まあ、これは OS 開発には、当然必要になる知識だからね・・・。

最近のプログラミングというと、VB, Java とか PHP とか、オブジェクト指向とか、Web プログラミングとかから入った人が多いと思う。

そういう人にとっては、C ってなんぞや?とか、こんなの考えられねぇ~という人が多いかも。(僕も、VB から入った人間ですが)

でも、なれれば、そうそう苦にはならない。

少なくとも、基本的な C 言語は絶対的な命令数が少ないので、あとは、頭をフル回転させるだけだ。

アセンブラも一緒、命令数は少ないから、あとはどれだけの発想能力があるかとか、そこら辺を問われるかもしれない。

とりあえず、まあ僕も半年もしないうちに C 言語になれて、いまや VB なんて カ(ry なんていってるぐらいですからw (といっても、C# だって ++ 派からすると カ(ry なんでしょうけど、いや ++ ができないわけじゃないですよ。)

まあそんなもんだ。

 

img54 

本を読んだり、ktok 君の Debian いじり (gcc うごかねぇ~) を手伝っていたため、あまり作業を進めることはできず。

とりあえず、FD からブートさせて、画面上に自由自在に文字を表示するぐらいはできました。

これでは、まだ OS ではありませんね。

 

img30 

少なくとも、この本を全部読破すれば、これぐらいのものは作れるようです。

しかし、これだけじゃ物足りないというか、個人的には納得がいかない。

高望みかもしれないけど、せいぜいディスクに何か保存できるぐらいはしたい。

が、どうもこの本は、ファイルシステムについての記述があまりないので、たぶんそういうことはやらないのかな?

で、ネットワークに接続して、ファイルのやり取りぐらいはしたい。

が、これもまず NIC を認識しないというか、ほとんどデバイスに非対応なのでここら辺は・・・。

 

ここで思った、やっぱ Linux ベースにするべきだった・・・。

最初は、それも考えたが、それじゃつまらないなぁと思って却下したのだが。

正直、高望み過ぎたかもしれない。

確かに、これでも十分 OS ではあるような気がしないでもない。

少なくとも、いろんな面から見て学校で習った OS の定義とはずいぶんかけ離れているな。

確か、この本の作者は、情報系の学校とか行ってないって書いてたようなきがしたけど。

固定観念にとらわれないのも、大事かもね。

少なくとも、僕みたいに学校で勉強しちゃった人間が OS を全部何も資料なしに作るって言うと、たぶんぜんぜん違うものができるだろうなぁ。

確かに、学校に行くといろいろ学べるけど、失うものもあるのかも。って思ったり。

 

といっても、いまさらテーマ変更とか、方向修正はできない。

やるしかないみたいだねw

まあ、目標としては、この本に載ってることはあくまで参考。

なるべくオリジナルなものを作りたいのだけど。

そうなると、この本は一通り読んだら、あまり役に立たそうだな。

でも、その先って、どんなものを読めばいいんだろう。

とりあえず、それはあとから考えることとするか。

連休中に、この本の内容全部終わらせるぐらいのペースで行かないとヤバイかも。

あ~どうしよ。

 

そもそも、研究テーマは "自作 OS によるサーバー用OS" とか何とか書いたような気がしたな。

もちろん、実現できる可能性は、そのときから薄いとは思ってたけど。

夢は大きくがモットーの部活に居ると、こういうことになるのです。

構想は大きいほうがいいかもしれないけど、ほどほどに。

トラックバック(0)

このブログ記事を参照しているブログ一覧: 課題研究でつくってみる自作 OS - 1

このブログ記事に対するトラックバックURL: http://techno-st.net/mt/mt-tb.cgi/581

コメントする

2008年10月

   1234
567891011
12131415161718
19202122232425
262728293031 

Random Entries

日替わりらしい。
仕様上ページ別に変わるらしい。
Random な感じらしい。

アーカイブ

  • 月別アーカイブ:
  • カテゴリーアーカイブ:

Ads

このブログ記事について

このページは、technoが2008年5月 3日 23:50に書いたブログ記事です。

ひとつ前のブログ記事は「ミニマイコンカーを C 言語 (HEW) で開発する。」です。

次のブログ記事は「MonoDevelop - Linux で動く .NET 開発環境で遊んでみる [Part1]」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

 

- 実験中 -

mgfxjey49@techno-st.net

xq58grpua@techno-st.net

m0ss9eatc(at)techno-st.net

y75vdonfa@techno-st.net

edvvb6cx9@techno-st.net

Mail Address