2008/04/11 ( n ) < HariboteOS >
今週は仕事を普通にしながら、夕食後から夜中にかけてOS作りをしていたので、 さすがに相当疲労が溜まってしまいまして、今日はあまり進まなかった。
初めにマウスを動かす処理。
昨日マウスからのデータの読み込みまで終了していたので、今日はこのデータを解析して、マウスカーソルを実際に動かしてみた。ついでにボタンに応じてカーソルの色を変えてみたり。
それからブートローダー関連で後回しになっていたアセンブラソースの解説を読む。
GDT,IDT の簡単な初期化、OSのメモリ領域へのコピー等など。
なんか若干理解できた気分。
次に、メモリ容量の取得。
すごくシンプルだけど、こんなもんでいいんだろうか。
それからメモリ管理部分に頭を突っ込んだけど、今日はギブアップ。
今日のところの成果。
本の9日目までを4日で進んだのでいいペース。ただ、ちゃんと理解できていない部分もある。
でも、とりあえず楽しんで作って、細かいことは後でちゃんと勉強するって方針でいいと思います。
2008/04/10 ( n ) < HariboteOS >
まず最初に文字の描画。32bit になってしまったのでもはやBIOSはつかえない。
ビットマップみたいなフォントデータを作成して1ドットづつ地道に描画。。。
なかなか切ない。
本に付属のフォントデータを使用してASCII文字列の描画ができるようになった。
デバッグメッセージを表示できる様になったのは喜ぶべきことのはず。
次に、マウスカーソルの表示。
とりあえず表示だけ。
で、ここからが本日のメインイベント。
GDT と IDT。
IDTの方はやりたいこともやってることも(やり方は別として)なんとなく理解できる。
一方GDTの方はさっぱり。要復習。
息抜き程度にソースを分割。
複数のソースファイル(*.c,*.nas)に対してヘッダファイルが一つっていう状況に違和感を感じるのは普通なんだろうか。
で、割り込みの設定をしてキーボードとマウスの反応を得る。
ハードの制御となると途端に難しく感じる。こちらも要復習。
途中で FIFO を実装。
オブジェクトにしてメソッド呼び出したいよーと思いながらも C++ でやることのハードルの高さに(全然見当もつかないけど)しぶしぶ我慢。
やっぱり C言語はあまり好きではない。
今日の結果。
見た目はそんなに変わらないけど、マウスとキーボードを例にハードウェア回りの最初の一歩を踏み出した感じ。
今日はここまで。いいペース。
2008/04/09 ( n ) < HariboteOS >
昨日手書きしたイメージファイル を作るためのアセンブラを、とりあえず本を見ながら打ってみる。
イメージファイルをバイナリエディタで作ってからアセンブラで作り始めるのは順番が逆では?と思いつつもこっちの順番の方が意外と理解しやすいのが不思議だ。
Linux版開発セットを HariboteOS/Index から持ってきてアセンブルして実行。当然結果は昨日と同じ。
Linux/wako_memo をブックマークに追加。
......................
レジスタがたくさんあって、8ビットだ16ビットだ32ビットだと全然覚えられない。 そのうちアセンブラの教科書的なものを買ってこよう。
で、なんか調子がよくて、なんと本の四日目まで終わってしまった。
要所要所で説明が省かれて(後で説明しますとかなんとか)、
肝心なところが理解できていないような感じを残しつつ、
画面にお絵描きをするに至る。
今日はここまで。GW前に終わらないかなぁ。
2008/04/08 ( n ) < HariboteOS >
いきなりバイナリエディタで直接イメージファイルを作り始めましたか。。。
バイナリエディタなんて使ったこと無いですが、名前は確か khexedit, khexedit...
KDE 4.0.2 には無いのか!? まぁ、それは置いておいて、 kde3.5 の khexedit で helloos.img の内容を作成してみる。ノートPCのキーボードだと数字を打つのが辛い。
イメージを作成し終わったけど、何をしているのかはまったく不明のままとりあえず実行へ。
本に書いてあるのは Windows でフロッピーから起動する方法ですが、 フロッピーなしのノートPCで Linux なので、、、QEMU ね。
HOWTO: Qemu - Gentoo Linux Wiki を参考に QEMU のインストールをした。
gcc は 4系では文句を言われるので一瞬 gcc-config で 3.3.6 に切り替えて
# emerge -avt qemu
kqemu というものも必要らしい。
# emerge -avt kqemu
kqemu をカーネルにロードして、ユーザーを qemu グループに追加して、
$ qemu -fda helloos.img
おぉ、素晴らしい。よくわかんないけど、何かが動いて文字が表示されている。
今日はここまで。
2008/04/07 ( n ) < HariboteOS >
今から約2年前、本当に30日でOSが出来上がるのかを試してみるBlog という Blog を見て買って以来、かれこれ2年ほど放置していた 30日でできる! OS自作入門 をとうとう読むことにしました。
C言語もアセンブラもOSもほとんど知識がないので、なんとうってつけの本かと。なにより、そういう知識がなくてもいいよーと書いてあるところが素晴らしい。
一応社会人なので30日×2くらいを目標になんとなく進めていこうと思っています。
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 29 | 昭和の日 | |||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | |||
プロ論。2
誰もが注目をする作品を生み出したい時
★★★☆☆
Apacheハンドブック
これで奥の深いApacheも完璧!?
★★★☆☆
30日でできる! OS自作入門
OS作りがこんなにも身近に!
★★★★★
Subversion実践入門
Subversion の教科書です。
★★★★☆
入門bash
身近で強力なbashを使いこなし、様々な手続きを便利にしましょう。
★★★☆☆
オトナ語の謎。
「…。」でニュアンスまで伝えろ!詳細はお求め頂ければ分かるかと…。←
★★☆☆☆
Binary Hacks —ハッカー秘伝のテクニック100選
バイナリアンに憧れてます。
★★★★☆
標準ウェブ・ユーザビリティ辞典
見る人に優しいサイト作り
★★★☆☆
Rubyデスクトップリファレンス
タイトル通り、「あ、これなんだっけ?」の強い味方です。
★★★★★
XML HACKS
万能のフォーマットをどう生かすか?
★★★★☆
GTK+入門
Gtk+ の初めの一歩
★☆☆☆☆
千円札は拾うな。
先進的な企業経営を実践しているすごい人ですね
★★★☆☆
BLOG HACKS
ブログを様々な角度から改造してみましょう。
★★★★☆
Copyright © 2025 Linux-Life.net