ShiftCrops つれづれなる備忘録

CTF関連の事やその他諸々

OSって奥深いねぇ

昨日から、やっと自作OSの開発に本格的に取り組み始めました!
と言っても、教科書の順を追ってコーディングしてくだけなんですけどねw



川合秀実さんの「OS自作入門」、これ結構分かりやすいですよねぇ~
川合さんは、セキュリティー&プログラミングキャンプ2010のOS自作組で講師をしていらしたようです。
こんなことなら、ネットワークセキュリティ組よか(ry
なんでもありません。元々自分はネットワークの畑でやってこうとしてた者ですから、全くもって問題ないです。
ていうか、もし違う組だったら今知り合ってる人たちとは知り合えなかったのかなぁ・・・?

ま、いいや


今日はそこまで進んではいません。

まあ、まずは皆さんおなじみの「Hello,World」ですよね。
ちょっと小さくて見にくいかもしれません。
まあ、そこらへんは勘弁してください。
これはブートローダだけのとても軽いプログラムです。
因みにアセンブリで書かれています。
次はディスクの読み込みですね。OSたるもの、ちゃんとシステムを読まなきゃブートローダもなにも無いですもんねw
画面には何も表示されませんが、奥でごにょごにょやってるBIOS君やブートローダ君、いつもありがとうございます!

で、次は早速OS本体の製作です。
方針としてはどうやら、はじめのCPU君とメモリ君とのやり取りはアセンブリで行い、その後のOSの機能はC言語で記述していくようです。
でも、OSの中でも直接I/Oやメモリ等々と渡り歩かなきゃいけない時があり 、そのときはまたアセンブリに頼るようです~

早速作ったのは・・・
なんだかしましまですね。
これはVRAMに色の値を書き込んでやっただけなんですが、、、
よくよくみるとこのVRAM結構すごい。
VRAMは全部で64KBあるらしいですが、そのメモリひとつひとつが全ての画素ひとつひとつに割り当てられてるんですってね!
当たり前っちゃ当たり前なんですけど、物を知らない俺にとってはちょっと感動物でした。

続いては四角、四角、刺客もとい四角。
これは単純にx座標方向に連続して同じ値を代入し、それをy座標方向にも同じだけ繰り返す、という作業で正方形ができます。


まあ、そこで本日の〆はこんな感じ。
なんだかWindows95とかってこんな感じでしたっけ?
いきなりやってることが飛んだように見えますがやってることは至って単純。
一旦バックを緑で埋めて、その後下に灰色のタスクバーを生成。後はメニューボタンとかが入りそうなところに影つけてボタンに見せるだけ。
ようは、これボタンじゃないんですよねww




しばらくはこんな感じで本の受け売りが続くかもしれませんが、暖かく見守っていてください。
では~