Yabu.log

ITなどの雑記

OS

30日OS自作本14日目

OS

14日目の内容です。 内容としてはGUI機能をさらに強化する感じです。 Windowが動くようになりました(不完全) 画面が高解像度になりました。 キーボード入力に対応した文字が表示できるようになりました。 GUIは結構進みましたが、まだまだ改善の余地を感じさ…

30日OS自作本13日目(詰む)

OS

13日目のソースは harib10a:文字列表を簡単に(文字列表示のヘルパー関数を作る) harib10b:FIFOバッファを見直す(タイマーのFIFOを統合する) harib10c:性能を測定してみる(パフォーマンス測定用のカウンターの導入) ですが、harib10cのソースが正常に動作しま…

30日OS自作本12日目

OS

12日目はタイマーです。 www.youtube.com タイマーとは?その必要性は? タイマーがないと定期的に or 何秒後にXXするという処理を作りにくい タイマーがなくても一応実現できる。 ただしCPUのクロックに依存したコードを書く必要がある 各命令や関数が何ク…

30日OS自作本11日目

OS

11日目はついにWindowを作ります。 Windowのハローワールド的なもの ウインドウ ウインドウの作り方です。簡単にコメントで補足してみました。 struct SHEET *sht_win; unsigned char *buf_win; /*リソース確保*/ sht_win = sheet_alloc(shtctl); //シート b…

30日OS自作本10日目

OS

10日目はGUIの改善を行いました。これにより、下のバーをマウスが破壊する現象がなくなりました。 GUIの改善。マウス以外の恩恵を感じられるのは11日目から、な気がします。 day9までのGUIの課題 画面再描画の方法 画面描画の改善 感想 day9までのGUIの課題 …

30日OS自作本9日目

OS

30日OS自作本9日目 9日はメモリ管理です。 BIOSからメモリの情報を取得する方法(失敗) https://stackoverflow.com/questions/39024754/how-to-get-ram-size-bootloader https://wiki.osdev.org/Detecting_Memory_(x86)#Manual_Probing http://softwaretechni…

マウス(PS2)の割り込みについて

OS

8章終了時にマウスが動いている仕組みがイメージできなかったので 5〜8章で割り込みついて書いてるところを自分なりにまとめました。 PICの設定の初期化 IDTの設定 IDTに割り込みハンドラを登録する 割り込みの発生、割り込みハンドラの呼び出し 割り込み…

30日OS自作本8日目

OS

8日目の内容になります。 前回マウスを動かすための割り込み処理を完成させたので、 受信したデータを使ってマウスカーソルを動かす内容になります。 祝マウス初動作。灰色のバーはマウスが通った後再描画されないのでグチャグチャ 動画 マウスの受信データ…

30日OS自作本7日目

OS

7日目は6日目で作った割り込みを少しカスタマイズしました。 マウスからの入力が感知できるようになりましたが、まだ動かす部分は作っていません。 7日目終了時の画面。表示されているデータの左側がキーボード、右側がマウス入力のもの 割り込み処理の中身…

30日OS自作本6日目

OS

6日目は割り込みハンドラの実装&呼び出しを行った。 キーボード入力に反応.マウスはまだ動かない. GDTの仕組み GDTRという48ビットのレジスタにGDTを配置した番地(開始地点)とリミット(開始地点からどこまでGDTか)を書き込む GDTRの最初の2バイトはリミット…

30日OS自作本5日目

OS

5日目は文字とマウスカーソルの表示をやりました。 VRAMにマウスカーソルとフォントを書き込んだ。マウスカーソルはまだ動かない 文字をどう扱うか 文字を配列のインデックスに利用する マウスカーソルを動かすためにはセグメンテーションと割り込みが必要。…

30日OS自作本4日目

OS

今日はこの辺までできた。 画面描画周りの色々 で結局画素の位置との対応は? 配列とポインタ 配列のインデックスはアドレスの加算として表現されている C言語でなんでもできるわけではない おまけ(失敗) 感想 画面描画周りの色々 day3から引き続き、ビデオ…

30日OS自作本3日目

OS

なんかすごく低レイヤー臭が強まったdayでした。 フロッピーの容量は次のように決まる ESとBXレジスタを使ったバッファアドレスの決まり方 BIOSとのお別れ 新しく知ったこと gccはgasというアセンブリ用のソースを出力する objファイルのobjectは目的、の意…

実家にフロッピーとドライブがあったのでOSを書き込んでブートしてみた(失敗)

OS

たまたま見つかったフロッピーと格闘した記録です。 実家にフロッピー&ドライブあったんで自作os本のサンプル焼こうと思ったらエラー発生。 pic.twitter.com/Vy3Pnlyz4Z— yuyabu (@yuyabu2) May 4, 2018 ディスクエラーなら別の試せばいいか。もう4回遊べる…

30日OS自作本2日目

OS

ちょっと詰まっても読み進めれば解決することがわかりました。 helloos.nas のコメント部分が文字化けしてしまいました。 よくわかんないこと ORG アセンブラとバイナリ(DBで書き込んだ16進数)との対応(解決) ラベルとアドレスの対応(解決) nask以外のツール…

30日OS自作本1日目

OS

macOS High Sierra 10.13.4でやっています こちらのサイトを大いに参考にしています GitHub - sandai/30nichideosjisaku: 『30日でできる! OS自作入門』川合 秀実氏(著)のMacOSX開発環境を整えることができます バイナリエディタ 推奨の通り0xEDを使います …

「30日でできる! OS自作入門」の最初のOSブートまでの環境構築をmacOS High Sierraでやる

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る きっかけTuring Complete FM Turing Complete FM のゲストのるくすさ…