os自作入門 1日目 Hello World

スポンサーリンク

はじめに

30日でできる!OS自作入門の一日目の
エミュレータの起動でつまったので
その解決方法と実行について

30日でできる! OS自作入門

30日でできる! OS自作入門

この本を読んでやったことを書いていくぜ

環境について

Windows7 64bit Professional

Linux mintVirtualBox上で動かしている

バイナリエディタでゴリゴリ書いていくぜ

以下のコードを書いていく
全部書いて実行するとHello World
が表示されるはず

コードの一部だけ示した。

00000000   EB 4E 90 48  45 4C 4C 4F  49 50 4C 00  02 01 01 00  .N.HELLOIPL.....
00000010   02 E0 00 40  0B F0 09 00  12 00 02 00  00 00 00 00  ...@............
00000020   40 0B 00 00  00 00 29 FF  FF FF FF 48  45 4C 4C 4F  @.....)....HELLO
00000030   2D 4F 53 20  20 20 46 41  54 31 32 20  20 20 00 00  -OS   FAT12   ..
00000040   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00000050   B8 00 00 8E  D0 BC 00 7C  8E D8 8E C0  BE 74 7C 8A  .......|.....t|.
00000060   04 83 C6 01  3C 00 74 09  B4 0E BB 0F  00 CD 10 EB  ....<.t.........
00000070   EE F4 EB FD  0A 0A 68 65  6C 6C 6F 2C  20 77 6F 72  ......hello, wor
00000080   6C 64 0A 00  00 00 00 00  00 00 00 00  00 00 00 00  ld..............
00000090   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000000A0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000000B0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000000C0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000000D0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000000E0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000000F0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00000100   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00000110   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00000120   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00000130   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00000140   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00000150   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00000160   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00000170   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00000180   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
00000190   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000001A0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000001B0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000001C0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000001D0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000001E0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
000001F0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 55 AA  ..............U.
00000200   F0 FF FF 00  00 00 00 00  00 00 00 00  00 00 00 00  ................

00000201G行~00167FF0行まで全て0を入力

実行するぜ

!cons_nt.batをクリックして
プロンプトを起動する。

ここで問題発生

作ったイメージファイル
helloos.img をエミュレータ上で動かす
ため本に書いてあるように

>run

を実行するとそんなパスねぇぞ
と言われて実行できない

f:id:shangtian:20180807115620p:plain

原因を突き止めるぞ

たんにファイルパスが間違っている
だけみたいなのでパスを修正すれば良さそう

サクラエディタでファイルの中
のぞいてみる

!cons_nt.bat はコマンドプロンプトを呼び出しているだけ

f:id:shangtian:20180807115711p:plain

run.batをのぞいてみる

f:id:shangtian:20180807115756p:plain

さっきコマンドプロンプト
runを実行したときでてきた文字が
かいてあるのでここを修正すればよさそう

よく見てみるとファイルパスがあってなさそう
なので修正する。

赤線の部分をコピーして

f:id:shangtian:20180807120716p:plain

下のスクショのように書き換える。
ここのパスは環境によって違うので注意

f:id:shangtian:20180807121133p:plain

もういちど実行してみる

>run

をタイプして実行

f:id:shangtian:20180807121304p:plain

みごとHello worldが表示された

f:id:shangtian:20180807121313p:plain

ノートパソコンで実行してみる

osを作ろうってことなので

ほんとうに起動できるのか
試してみる

まずイメージファイルをusbに焼く

ここの作業はWindowsではなくて
Linux mintのほうでおこなった。

ノートパソコンのブート順位を
USBが最初に来るように変更して
起動してみる。

f:id:shangtian:20180807221237j:plain

みごとhello worldが表示された