1日目(アセンブラ言語)
今更だが、本書の公式ページから付属CD-ROMのデータをダウンロードしておいた。
HaribiteOSフォルダの中から、tolsetフォルダのみをホームディレクトリに置いた。
また、 リンクを辿ったらサポートページにLinux版開発セットもあったので、それもダウンロード。
Linux版開発セットを解凍、ホームのz_toolsに nask.exe をコピーした。
今回は1日目の中で、後半のアセンブラ入門の章を中心に進める。
HaribiteOS/projects/01_dayにあるhelloos1フォルダをホームのtolsetフォルダにコピー。
これをnaskを使ってイメージファイルに変換。
$ ../z_tools/nask.exe helloos.nas helloos.img
エラーが出なければ、無事にhelloos.imgが出来ているはず。
ここで前回と同じく、実行して確認。
$ qemu-system-i386 helloos.img
問題なく動いた。
バッチファイルについては、ここでは割愛。
環境が違うので、今のところ不要だと思う。
ちなみにLinux用のアセンブラ、nasmも一応入れておいた。
naskの原型らしいが、まだ実行したことはない。
$ sudo apt install nasm
しかしすでにインストールされていた。以前入れたかどうか覚えがない…。
今度はhelloos2フォルダを持ってくる。
Visual Studio Codeでフォルダ内にある helloos.nas を開いたところ、コメントの日本語が文字化けしまくっていた。
- ファイル→基本設定→設定からfiles.autoGuessEncodingと入力
- Visual Studio Code出てきた設定にチェックを入れる
- 再起動、ファイルを開き直し
で直した。
helloos.nasの「hello world」の文字をちょっと変えたりして、保存後起動し、無事に表示された。
これでようやく1日目終了。
今回参照させて頂いたサイト:
本書の公式ページ : https://book.mynavi.jp/supportsite/detail/4839919844.html
サポートページ : http://hrb.osask.jp/
サポートページの覚書き : http://hrb.osask.jp/wiki/?Linux/wako_memo
https://qiita.com/github129/items/edf1a2c0472fbe293f9c
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
始める前に
書籍を購入してからかなり経ってから始めました。
かなり前に書かれたものなので、現状に合うように情報収集をしっかりしてから…と思ったんだけど、やってる人は基本的なところはよくわかってて、非常に自由な独自の環境でやってるので逆にわからなくなったという状態。
なのでとにかくやってみればいいだろ、という精神でいきます。
そのために参照したURLとかやったことをちゃんとメモっていかないと途中で詰むなと思ったので、本家ブログとは別に学習用ブログのスペースを借りました。
毎日は絶対無理なんで、ちょっとずつやったこと・わかったことを書いておきます。
自分の環境はUbuntu 18.04です。
学習中に参照したURLはまとめて記載するようにします。