読者です 読者をやめる 読者になる 読者になる

「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日目の分としるされた量をこなして終了。