あんたいとる

無駄の中に宝がある!

OS

30日でできる! OS自作入門(九日目)

OS

メモリ管理 新しく学んだ知識 486以降はEFLAGSレジスタの第18ビットがACフラグというものになっているが、386にはこのフラグはない。このビットに1を書込み再度EFLAGSを読み出してACフラグが1のままか調べることで486以降か確認している。 キャッシュを禁止…

30日でできる! OS自作入門(八日目)

OS

マウス制御と32ビット制御切り替え 新しく学んだ知識 マウスのボタンの状態はマウスから送られてくるデータ(3バイト)の1バイト目の下位3ビットに収まっている。 キーボードコントローラのおまけ出力ポートに、0xdfというデータを出力するとA20GATE信号線がON…

30日でできる! OS自作入門(七日目)

OS

FIFOとマウス制御 新しく学んだ知識 PICにIRQの発生を受付たことを通知するにはOCW2に「0x60 + IRQ番号」をoutすればよい。 マウスを動かすにはマウス制御回路とマウスに「有効化命令」を発行しなければいけない。 キーボード制御回路のモードを設定するため…

30日でできる! OS自作入門(六日目)

OS

分割コンパイルと割込み処理 新しく学んだ知識 ソースファイル分割 分割するメリット 処理内容できちんと分類しておけば、改造などをするときに目的の場所を探しやすい Makefileを上手く書いておけば書き換えたファイルのみがコンパイルされるのでmakeが速く…

30日でできる! OS自作入門(五日目)

OS

構造体と文字表示とGDT/IDT初期化 新しく学んだ知識 構造体 struct BOOTINFO { /* 構造体名 */ char *vram; /*構造体のメンバのデータ型 */ int xsize, ysize; ... }; struct BOOTINFO abc; /* 構造体 BOOTINFO型の変数 abcの宣言 */ struct BOOTINFO *abc; …

30日でできる! OS自作入門(四日目)

OS

C言語と画面表示の練習 新しく学んだ知識 ビット演算 演算子 説明 | OR演算。特定のビットを1にするときに使う。 & AND演算。特定のビットを0にするときに使う。 ^ XOR演算。特定のビットを反転するときに使う。

30日でできる! OS自作入門(三日目)

OS

32ビットモード突入とC言語導入 新しく学んだ知識 命令について 命令 説明 JC キャリーフラグが1だったらジャンプする JNC キャリーフラグが0だったらジャンプする JAE 大きいかもしくは等しければジャンプする JB 小さければジャンプする INT 0x13 ローレベ…

30日でできる! OS自作入門(二日目)

OS

アセンブラ学習とMakefile入門 新しく学んだ知識 命令について 命令 説明 ORG 機械語が実行時にPCのメモリ読み込まれることになるかを教えてくれる JMP 指定した場所にジャンプする [word]: ラベルの宣言。JMP命令の飛び先の指定などに使う。[word]の部分に…

30日でできる! OS自作入門(一日目)

OS

PCの仕組みからアセンブラ入門まで やったこと バイナリエディタを使用してディスクイメージの作成 Bz.exeというバイナリエディタを使用して、本に記載してあるとおりに16進数のデータを入力していき、ファイルに保存。

30日でできる! OS自作入門(ゼロ日目)

OS

紙の書籍が出版されたのが2006年なんですね 当時図書館で借りてきて読もうとするも途中で挫折... 以来何度か挑戦するも読破できず Kindle版が半額セールになってたので今度こそはと購入してから早3年 1度も見てません....取りあえず今回こそは最後まで読み通…