「30日でできる!OS自作入門」読み始め
自分は、プログラマーとしての基礎が全然なってない!
↓
んじゃー、まずは、コンピューターのことを知ろう!
↓
それには、自分でOSを作ってみるのが一番だ!
↓
っていうか、なにより「30日でできる!OS自作入門」買ったけど読んでなかった。
というわけで「30日でできる!OS自作入門」を読み始めた。非常に丁寧な説明で、読んでて非常に心地よいです。
僕は、技術書はたいがい最後まで読み切らないので、今回も途中で挫折する可能性が高いのですが、毎日ちょびちょび頑張ります。
とりあえず、1日目は「Hello OS」ということで、バイナリエディタを使って「Hello OS」とだけ表示するOSを作成。
あとは、それをアセンブラで書き直し。
バイナリエディタでOSを書くという作業が、ハッカーっぽくて(偏見…)興奮しました。
とりあえず、写経して、文字表示部分のみ変更。
どの行が何をしているのかは割愛。詳しくは「書籍」を。
DB 0xeb, 0x4e, 0x90 DB "HELLOIPL" DW 512 DB 1 DW 1 DB 2 DW 224 DW 2880 DB 0xf0 DW 9 DW 18 DW 2 DD 0 DD 2880 DB 0,0,0x29 DD 0xffffffff DB "HELLO-OS " DB "FAT12 " RESB 18 DB 0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c DB 0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a DB 0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09 DB 0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb DB 0xee, 0xf4, 0xeb, 0xfd DB 0x0a, 0x0a DB "orz" DB 0x0a DB 0 RESB 0x1fe-$ DB 0x55, 0xaa DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 RESB 4600 DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 RESB 1469432
今日は、本の1日目の分としるされた量をこなして終了。