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