ねこめもmkII(マークツー)

本家ねこめも (http://nekomemo2.site)の補助用。 主に勉強ネタ。

1日目(バイナリデータの作成)

作業用に、ホームディレクトリではなく本書に倣って「helloos0」というフォルダを作成。
この中に作成したファイルを入れる。 

最初にバイナリデータを力技で作成。
手動で入力するにはあまりにもデータが多いため、ここだけはちょっとズルをする。
Python のプログラムで、必要な全ての行に0x00が並んだデータを作成する。 

Python はよくわかってないが、ここではそれは別の話なので内容の詳細については置いておく。
他の方のブログを参照させてもらい、以下のようにした。

# coding: utf-8
# python
from__future__import with_statement

withopen('helloos.img', 'wb') as f:
  for i inxrange(1440 * 1024):
      f.write('\x00')

これをhello.pyという名前のファイルにしてセーブしておいた。
実行する。
 $ python hello.py
エラーがなければ、「helloos.img」というファイルが作成されているはず。

これをバイナリエディタで編集するのだが、その前にGUIで使えるエディタをインストール。
 $ sudo apt install ghex
編集ファイルを指定しながら起動。
 $ ghex helloos.img
必要な行数の00のみが書かれているので、これを本書を参考にしながら書き換える。その後保存。

フロッピーディスクで起動する代わりに、Ubuntu上でOSを動かすためのシミュレーターをインストールする。
 $ sudo apt install qemu
 helloos.imgを実行。
 $ qemu-system-i386 helloos.img
しかし表示されない。
あちこち確認したが、結局バイナリファイルの内容そのものが間違っていた。

修正して、再度上記のコマンドを実行したところ、無事「hello, world」が表示された。 



今回参照させて頂いたサイト:

http://rikeda.hatenablog.com/entry/20111202/helloos1
https://admarimoin.hatenablog.com/entry/2018/09/03/225406