2006-12-31 今年一年を振り返って BayOS 30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る 4月はじめ 新宿のジュンク堂書店で「OS自作入門」を購入しました 4月 数日でとりあえずざっと読み終わりました C++ を使いたかったので、tolset を使わず(このときはC言語しか使えなかったので)gcc と nasm で実装を開始しました ld で吐いたバイナリーを実行させる方法がわからず挫折しました orz Mona0.2.2 を最小まで小さくしたものを作ってみました(Noma) Noma ではセグメントを使ったマルチプロセス化がうまくいかず、結局断念しました orz 5月 ここを参考にして、tolsetでC++が使えるようになりました♪(このときの嬉しさはまさに天にも昇る気持ち) やりたいことはまさにこれだったので、gcc と nasm を使った旧コードはすべて破棄しました 怒涛の勢いでC++化をすすめ、C++化がほぼ完了しました オリジナルのC言語版のコードは参考にはしていますが、C++版は似ても似つかぬコードです(笑) 最初のタスクスイッチができました(マルチタスクまであと一歩です) カーネルモードでとりあえず BayGUI を実装してみました 6月 下敷きのアルゴリズムが読んでいても全然わからず(汗)、ゼロから自分で作ってみたのですが、まったく速度が出ず、試行錯誤を繰り返しました カーネルモードで試しに InfoNES をビルドしてみたら、1MB弱になってしまったので、やはりアプリケーションは圧縮がきくユーザーモードじゃないと使い物にならないとわかりました ユーザーモードではじめてアプリケーションが起動しました ユーザーモードでメモリ管理ができるようになりました(mallocってこうやって作るのか・・と自分の手で実感できました) 7月 はりぼて Wiki にあった似非ファイルシステムに乗り換えました ウィンドウの枠を描画するようにしました(やっと見た目が OSっぽくなってきました) 8月 ユーザーモードで InfoNES が動くようになりました(これで、はりぼて OS でもファミコンで遊べます) 9月 仕事が忙しすぎてお休みです 10月 はりぼて友の会が発足しました オープンソースカンファレンス用にフルカラー化を行いました 11月 描画を早くしたり、中身をリファクタリングしたりしていました はりぼて OS に壁紙を読む込む機能をつけました(これでスクリーンショットが華やかになりますね) メッセージングフレームワークを追加しました(これで MonaOS みたいにプロセス間通信を行えるようになります) MonaOS ではメッセージのデータが固定長(しかも128バイトしかない)で、使いづらかったので、可変長にしてみました 12月 カーネルモードで一度実装していた BayGUI をユーザーモードで再実装しました せっかく作り直すので、いままでできなかったことを取り入れて、BayGUI2.0 になる予定です(今年はなんちゃら2.0が流行りましたねぇ・・でも、シングルプロセスの頃から数えると3代目?) メッセージフレームワーク上に、マウスやキーボードイベントを実装しました(いまのところ動いているようです) まとめ 振り返って見ると、最初の3ヶ月は挫折の連続で苦しかったです 自分で OS を作ってみると OS の構造がすみずみまで理解でき、とてつもなくいい経験になります 最近は、カーネル部分より、本来やりたかった GUI 部分に専念できるようになり、楽しい反面、ちょっと飽き気味かな・・ 今後は、音やネットワークやCD-ROMに対応して、簡単に遊べるホビーOS にしていきます はりぼて友の会 は今後も要注目です!