BayOS

勉強会の資料を公開します

先日と、だいぶ前に社内で行った OS 勉強会の資料を公開します。大して参考にならないかもしれませんが、OS ってなに?というレベルの人なら楽しめる内容だと思います。 第一回資料 第二回資料 ソースコードはこちらにおいておきますのでご自由にどうぞ。勉…

ホイールマウス

PS/2マウスは特別な初期化をすることでホイール対応にすることができます。以下参考にしたリンクです。 B級なホイールマウスの研究(ミドルウェア編) はりぼて友の会Wiki:advance/mwheel OSAkkieWiki:マウスホイール マウスの初期化部分とマウスデータのデ…

ATA(IDE)/ATAPIの徹底研究

ATA(IDE)/ATAPIの徹底研究 (TECHI)作者: インターフェース編集部出版社/メーカー: CQ出版発売日: 2002/07メディア: 単行本購入: 1人 クリック: 22回この商品を含むブログ (6件) を見るむしゃくしゃして買った。いまでは後悔していない・・・自作OSで、自分の…

bochs で動かしてみました (2)

bochs で CD-ROM が読めなかった件ですが、設定ファイルを変更したら無事読み込めました。スレーブに何もつないでいないときはどうやらマスターにしないといけなかったようです。無事読めこめたのはよかったのですが、読み込んだファイルがなにかおかしい・…

bochs で動かしてみました (1)

qemu と VMWare では CD-ROM が読めるのに、実機では読めない問題を解決するために、試しに bochs ではどうなるか実行してみました。bochs 日本語対応版は、がじぇっとぼっくす から入手しました。最新版は 2.3 のようです。結果は、実機と同様 CD-ROM が読…

実機で動かしてみました

せっかく新しいノートパソコンを入手したので、試しに実機で起動させてみました。前のノートパソコンでは起動して3秒くらいでフリーズしていたのですが(汗)、今回はちゃんと起動しました!!さすがに実機だとサクサク、スルスル動いて感動しました。しかし…

CD-ROMが読めたー!!

この連休はずっと ISO9660 フォーマットの勉強をしていました。というのも、はりぼてOSは都合上、フロッピーディスクを 512KB までしか使えず、大きめのアプリや動画などを読むことができないからです。勉強には、こちらのサイトと MonaOS の新ファイルサー…

サウンドキター!!

id:shotaro_tsuji さんの日記によると、MonaOS でとうとう音声再生に対応したみたいです。早速 SVN を覗いてみました。最初に ES1370Register を読もうとしたのですが、何をしているのかさっぱりで(汗)、全然コンパイルできません。が、Makefile を見たら …

今年一年を振り返って

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る 4月はじめ 新宿のジュンク堂書店で「OS自作入門」を購入しました 4…

16bitカラー版はりぼてOSをリリースしました

はりぼてOSの最終日版をC++化して、さらに16ビットカラー化したものです ここ で配っているC++対応版tolsetを使うことでビルド可能です なお、壁紙は http://koya.marokun.net/photo/index.php からお借りしました 同封されている hrbwall.jpg にはクリエイ…

OSC2006秋(趣味系)

ミニセミナー 14:00-14:105F-B教室で「BayOSとはりぼてOS」という内容でミニセミナーをやります。よかったら聞きにいらしてくださいね。

フルカラー化

オープンソースカンファレンス(OSC)も迫ってきたので、BayOS の目玉機能として、フルカラー(ハイカラー)化をやってみました。基本的なフルカラー(ハイカラー)化自体は、以下のような4行の修正で完了ですが、はりぼてOS自体は、256色固定のコードがたく…

InfoNES (2)

試行錯誤の末、はりぼてOS で InfoNES を動作させることに成功しました。やはり api_malloc で領域が確保できていなかったようで、全部スタックに積むようにしたらあっさり動作しました。ソースコードは以下からダウンロードできます。バイナリーとテスト用…

InfoNES (1)

たまには C++ に触れていないとなまりそうなので、移植してみました。前回は、カーネルモードで動かそうとしたのですが、サイズが 900KB を超えてしまって、到底フロッピーに入らなくなってしまったので、ユーザーモードで作ってみました。結果、ソースは 41…

ユーザーmalloc

malloc というのはメモリーを動的に確保するための関数です。一般のアプリケーションは動的にメモリ中に読み込まれるため(つまり毎回メモリの番地が変わるため)、その中でメモリーを動的に確保するためにはアプリケーション用の malloc を作らなければなり…

3度目の正直

いままでの CUI コンソールは、マウスを動かすと文字が消えてしまうという致命的な問題がありました。というわけで手抜きせずに作り直しました。今度は下敷き(ダブルバッファーみたいなもの)の上に文字を書くようにしたので、マウスを動かしても文字が消え…

外部アプリケーション呼び出し(2)

30日でできる! OS自作入門出版社/メーカー: 毎日コミュニケーションズ価格: ¥ 3,990メディア: 和書423ページを参考にして、C言語で作った外部アプリケーションを実行することができました。ファイルマネージャはすでに圧縮ファイルの読み込みに対応している…

スタック例外で悩み中

qemu では発生しないのですが、bochs と VMWare では起動時にキーボードタスクとマウスタスクでスタック例外が発生します。 void task_idle(void) { for (;;) { io_hlt(); } } void task_keyboard(void) { for (;;) { List<int>* fifo = Scheduler::current->fifo</int>…

外部アプリケーション呼び出し(1)

30日でできる! OS自作入門出版社/メーカー: 毎日コミュニケーションズ価格: ¥ 3,990メディア: 和書InfoNES を試しにビルドしてみたら、バイナリサイズが933KBになってしまいました。そのバイナリをtek5圧縮したら50KBほどまで縮みました。これはそろそろ外…

壁紙の最適化

GUI シェルが動いたので、壁紙のコントラストを元に戻しました。そうしたら、今度は我慢できないくらいに壁紙が汚い・・・。パレットの最適化がされていないことが原因でした(はりぼてOSはウェブセーフカラーを使っています)。パレットの最適化のため xPad…

描画の高速化

30日でできる! OS自作入門出版社/メーカー: 毎日コミュニケーションズ価格: ¥ 3,990メディア: 和書BayGUIが移植できたので、早速 GUI シェルを実行させてみました。実行自体はなんの問題もなくいったものの、描画が死ぬほど遅い・・・。仕方がないのでいろ…

BayGUIキター!!

30日でできる! OS自作入門出版社/メーカー: 毎日コミュニケーションズ価格: ¥ 3,990メディア: 和書私製 GUI ライブラリーである BayGUI がようやく移植できました。ソースコードは こちら から落とせます。BayOS 固有部分(ただし、イベントを抜いた表示の…

タスクスイッチキター!!

30日でできる! OS自作入門出版社/メーカー: 毎日コミュニケーションズ価格: ¥ 3,990メディア: 和書先日のエントリー後、着々とはりぼてOS の C++ 化をすすめていましたが、やっと待望のタスクスイッチまで行きました。これで gcc + nasm で作っていた BayOS…

はりぼてOSでC++言語を使いたい

30日でできる! OS自作入門出版社/メーカー: 毎日コミュニケーションズ価格: ¥ 3,990メディア: 和書はりぼてOS は、アセンブラに比べれば見通しのよいC言語で書かれています。しかし、普段からオブジェクト指向バリバリの人にはC言語ですら可読性が低く、C++…

タスクスイッチ

タスクを2個作って、1個目にスイッチするところまではうまくいったのですが、2個目のスイッチしようとするとどうやっても一般保護例外が出ます。場所はわからないのですが、TSS をどこかで壊しているらしく、スイッチ前に TSS を最初期化したら動くように…

NES Emulation System

拙いながらも私が作っている BayOS、マウスとキーボードとファイルシステムを手に入れました。ただし、リアルモードではメモリーに 640KB の容量制限があるため、フロッピーディスクの容量をフルには使えず、せいぜい 512KB どまりです。なにかいい使い道は…

仮想ファイルシステム

はりぼてOSには FDドライバーがありません。じゃあ、どうやってフロッピーからファイルを読み込むかというと、起動時に BIOS を使ってまとめて読み込んでいます。FAT12 の情報も含めて単純にごそっと読み込むため、あとでメモリーにアクセスするだけでフロッ…

malloc/free

id:higepon が malloc/free のことを日記で書いていたので、BayOS で使っているものを紹介します。といっても自前実装ではなく、MonaWiki/MonaDat にある Mona-20050620-MonaDat.tar.bz2 を改良して使っています。割り当てが早いらしいのと、なによりソース…