非情報系インフラエンジニアの情報系お勉強

OS自作、ネットワーク、セキュリティの備忘録

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バイト記述

DB,DW,DD命令の解説

TIMES命令の解説

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.WindowsQEMUのインストール

下記サイトから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つの特別なシンボル($、$$)があり、
$は使用された行の先頭アドレスを、$$は使用されたセクションの先頭アドレスを意味する。
がよくわからない。。。
$及び$$の意味について詳しく知りたい場合は下記を参照

NASM - The Netwide Assembler

環境が整ったので、下記コマンドを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度カスタマーサポートの方から確認されましたが、早く使用したい気持ちが勝り申し込みました。

store.google.com

www.qtmobile.jp

動作確認したサービス

  • 音声通話   可
  • データ通信  可
  • テザリング  可

その他

Pixel 3aのカメラはすばらしい!

今まで使用していたスマホ(Zenfone3)とは比べものにならないほど きれいに撮影できます。個人的に「モーションフォト」がおすすめです。

以下、設定内容他のスクリーンショット

f:id:kkjk117:20190605231024p:plain
QTmoble設定
f:id:kkjk117:20190605231028p:plain
認識状況
f:id:kkjk117:20190605231019p:plain
端末情報

OS自作入門 0日目/30日(環境構築~Hello world)

はじめに

 本ページでは「30日でできる! OS自作入門」の環境構築について記載します。

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

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

 

何事もはじめに躓くとやる気が出ません。

OS自作入門を購入された方の、環境構築の一助になればと思います。

 

 

 

 準備したもの

バージョン等は下記の通り

   Windows10 Home 64bit

   VMware Workstation 14 Player 14.1.1

 

 imgファイルの作成

 OS自作入門(以後、自作本)の手順通りバイナリエディタを用いて、imgファイルを作成し、適当な場所に保存。

面倒な方は、付属のCDに収録されているhelloos.imgを適当な場所に保存。

 

 VMwareの環境設定

インストール

以下のページからVMwareをダウンロードし、インストール

www.vmware.com

インストールの方法については割愛

 

環境設定

 「新規仮想マシンの作成」を選択

f:id:kkjk117:20180909231323j:plain

 

 「後でOSをインストール」を選択

f:id:kkjk117:20180909231327j:plain

 

 「その他」を選択

f:id:kkjk117:20180909231331j:plain

 

仮想マシン名に適当な名前を入力

f:id:kkjk117:20180909231334j:plain

 

ディスクサイズの容量は1GBを選択

f:id:kkjk117:20180909231336j:plain

 

「ハードウェアカスタマイズ」を選択

f:id:kkjk117:20180909231339j:plain

 

メモリ容量を推奨最小容量を選択後、FDD(フロッピー ディスク ドライブ)を追加する。自作本ではFDでOSを起動させるため

f:id:kkjk117:20180909231342j:plain

 

「フロッピードライブ」を選択

f:id:kkjk117:20180909231344j:plain

 

imgファイルの作成で保存したimgファイルを参照する。

f:id:kkjk117:20180909231347j:plain

 

その他のデバイスに「フロッピー」があることを確認

f:id:kkjk117:20180909231348j:plain

 

環境構築完了

仮想OSが登録完了。

仮想マシンの再生」を選択すると、OS自作の第一歩を踏み出します

f:id:kkjk117:20180909233929p:plain


「Hello, world」

f:id:kkjk117:20180909231353j:plain

 

これで環境構築~Hello worldまで完了しました。

続きはまた