OS自作入門 1日目/30日(アセンブラ入門)
OS自作入門 1日目/30日(アセンブラ入門)
1.はじめに
1日目では、0日目、0.5日目で使用した命令について解説を行う。環境設定については0日目及び0.5日目を参照
2.使用したアセンブラの命令
NASKの命令(30日本著者作成のアセンブラ)
命令 | 名前 | 内容 |
---|---|---|
DB | date byte | 1バイト記述 |
RESB | reserve byte | 指定バイト数分を0x00 でパディング※著者オリジナル? |
DW | date word | 2バイト記述 |
DD | date double-word | 4バイト記述 |
NASMの命令(今回使用のフリーのアセンブラ)
命令 | 名前 | 内容 |
---|---|---|
DB | date byte | 1バイト記述 |
TIMES | TIMES | 指定回数命令を実行 |
DW | date word | 2バイト記述 |
DD | date double-word | 4バイト記述 |
01_day\halloos2で使用するTIMES命令の解説
TIMES 0x1fe-($-$$) DB 0
上記命令の意味は 0x1fe-($-$$)
回 DB 0
を実行するであり、$
と $$
はそれぞれ現在の行のアドレスとファイルの先頭アドレスを表す。つまり、現在の行から0x1fe
までを0
でパディングする。
OS自作入門 0.5日目/30日(環境構築WSL、QEMU)
1.はじめに
0日目では、VMware上でOSを動作させていたが、今回は、WSL上でimgファイルまで作成し、実行はWindows上で実行する環境を構築する。WSL上完結したかったが、QEMUを動作させることができなかった。
※WSLを導入した理由は、個人の自己満足及びLinuxのコマンドの学習のためであり入れる必要はない
2.WSLの導入とツールのインストール
下記サイトを参考にWSLとWSL上にubuntuを導入する。 www.atmarkit.co.jp
WSL上で下記のツールをインストール
$ sudo apt install nasm
3.WindowsにQEMUのインストール
下記サイトからQEMUをダウンロード www.qemu.org
環境変数のPathにQEMUをインストールしたフォルダパスを追記
※自動でパスを通してくれないため
4.アセンブリ&実行
使用するソースプログラムは projects\01_day\helloos2\helloos.nas
アセンブルには nasm を使用するので拡張子を .asm へ変更
そのままアセンブリするとエラーになるため、ソースファイルの下記命令を変更
RESB
を TIMES
へ変更
例.RESB 18
→ TIMES 18 DB 0
TIMES命令とは?
TIMES n 命令
・・・n回命令を繰り返す
例はDB
を18回繰り返す意味
RESB 0x1fe-$
→ TIMES 0x1fe-($-$$) DB 0
0x001fe
までを0x00
で埋める命令
NASMには2つの特別なシンボル($、$$)があり、
$
は使用された行の先頭アドレスを、$$
は使用されたセクションの先頭アドレスを意味する。
がよくわからない。。。
$及び$$の意味について詳しく知りたい場合は下記を参照
環境が整ったので、下記コマンドをWSLで実行
$ nasm -o helloos.img helloos.asm
helooos.imgが出力されるので、Windwos上で
>qemu-system-i386 helloos.img
WARNING出力するがとりあえずOK
WARNING: Image format was not specified for 'helloos.img' and probing guessed raw. Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted. Specify the 'raw' format explicitly to remove the restrictions.
動作確認完了。
Pixel 3aでQTmoble(ドコモ回線)SIMを使えました
結論
Pixel 3aでQTmoble(ドコモ回線)SIMを使えました。
※動作を完全に保証するものではありません。導入する際は自己責任でお願いします。
SIMの申し込みをした際に、「Pixel 3a」は動作保証対象外(公式で動作確認をしていない)であること を2度カスタマーサポートの方から確認されましたが、早く使用したい気持ちが勝り申し込みました。
動作確認したサービス
- 音声通話 可
- データ通信 可
- テザリング 可
その他
Pixel 3aのカメラはすばらしい!
今まで使用していたスマホ(Zenfone3)とは比べものにならないほど きれいに撮影できます。個人的に「モーションフォト」がおすすめです。
以下、設定内容他のスクリーンショット
OS自作入門 0日目/30日(環境構築~Hello world)
はじめに
本ページでは「30日でできる! OS自作入門」の環境構築について記載します。
何事もはじめに躓くとやる気が出ません。
OS自作入門を購入された方の、環境構築の一助になればと思います。
準備したもの
バージョン等は下記の通り
Windows10 Home 64bit
VMware Workstation 14 Player 14.1.1
imgファイルの作成
OS自作入門(以後、自作本)の手順通りバイナリエディタを用いて、imgファイルを作成し、適当な場所に保存。
面倒な方は、付属のCDに収録されているhelloos.imgを適当な場所に保存。
VMwareの環境設定
インストール
以下のページからVMwareをダウンロードし、インストール
インストールの方法については割愛
環境設定
「新規仮想マシンの作成」を選択
「後でOSをインストール」を選択
「その他」を選択
仮想マシン名に適当な名前を入力
ディスクサイズの容量は1GBを選択
「ハードウェアカスタマイズ」を選択
メモリ容量を推奨最小容量を選択後、FDD(フロッピー ディスク ドライブ)を追加する。自作本ではFDでOSを起動させるため
「フロッピードライブ」を選択
imgファイルの作成で保存したimgファイルを参照する。
その他のデバイスに「フロッピー」があることを確認
環境構築完了
仮想OSが登録完了。
「仮想マシンの再生」を選択すると、OS自作の第一歩を踏み出します
「Hello, world」
これで環境構築~Hello worldまで完了しました。
続きはまた