みなさんこんにちは!宮水です。今回は、マウスの作成まで(本書の7章まで)を通して自分なりに分かったことを日記として投稿します。
環境構築・ブートローダの作成まではこちら!miyamizu.hatenadiary.jp
4章 ピクセル描画とmake入門
この章でやること
- makeを使ってみる
- OS本体から絵を描く方法を学ぶ
画面に黄緑色の四角を描くことができました。
make
コンパイルやリンクなどの作業を自動化するツール
GOP (Graphics Output Protocol)
グラフィックス表示プロトコルの一つ。(ググっても全然情報が出てこなかった…)
System V AMD64 ABI
プログラムとCPUの相互作用を機械語レベルで規定する。プログラムが動作するにあたり必要なレジスタやメモリの使い方が決まっている。重要な項目に呼出規約があり、引数、戻り値、関数の中で変更していいレジスタなどを定めている。
vtable
5章 文字表示とコンソールクラス
この章でやること
- OS本体から画面に文字を表示する
- フォントを読み込んだりする
- 出力専用のコンソールを作る
こんな感じで、フォントを適用して文字が表示されるようになりました!
バッファ
データを一旦蓄えておける場所のこと。
ld.lldコマンド(3章の復習)
オブジェクトファイルから実行ファイルを作成する。
6章 マウス入力とPCI
この章でやること
マウス入力を受け付けられるようにします。
バス
電気信号を送る
シリアル
1本の信号線を使って信号うが1ビットずつ送られるという意味。
ドライバ
制御チップのようなハードウェアを扱うためのソフトウェアのこと。
xHC(Extensible Host Controller Interface)
(xHCIと同義…なんですかね…?これもググってもあんまり出てこなかったです…)
xHCIとは、USB接続の周辺機器とコンピュータ本体の通信を制御するUSBコントローラの種類の一つで、USB 3.x規格に対応したもの。
https://e-words.jp/w/xHCI.html
https:/https://e-words.jp/w/xHCI.html
/e-words.jp/w/xHCI.html
ポーリング方式
イベントが来ているかどうか問い合わせる方式。
7章 割り込みとFIFO
この章でやること
- 先ほどポーリング方式で作ったマウス入力を割り込み方式にする
割り込み処理は、以下のサイトの図がわかりやすかったです。
「マウスが動きましたか?」と毎回問い合わせるのではなく、マウスが動いたらそのときやっている処理を一時中断してマウスを動かし、元の処理に復帰するようにコードを書き換えていくそうです。
割り込み処理 | 東芝デバイス&ストレージ株式会社 | 日本
割り込み方式
イベントが到達したときにハードウェアがOSに通知する方式。
割り込みハンドラ
割り込み発生時に実行される関数のこと。
割り込みベクタ
割り込みには色々種類がある。割り込みの種類ごとに異なる割り込み要因番号が割り振られている。これを割り込みベクタという。
IDT(割り込み記述子テーブル)
割り込み要因番号と割り込みハンドラを対応付けるための表のこと。
FILO
先入れ後出し。スタックのこと。