2021年2月号 特集 6日目 第1章

6日目 第1章 実験で理解する!ハイパーバイザの動作原理

●Linux環境の準備
▲VirtualBox

Windows PCで試す場合,まず次のウェブ・サイトからBirtualBoxをダウンロードし,イントールします.

https://www.virtualbox.org/wiki/Downloads

VirtualBox 6.1.16 platform packagesのWindows hostsをクリックしてダウンロードします.
ダウンロード・ファイルをダブルクリックし,インストーラに従ってインストールします.
インストーラで設定するのは,インストール場所とデスクトップ・アイコンなどです.
基本的に「Next>」をクリックしていけばよいです.
▲CentOS6.5
以下のウェブ・サイトのリンクからCentOS6.5のイメージをダウンロードします.
http://kozos.jp/vmimage/progtool.html

ダウンロードした下記ファイルを7zipなどを利用して解凍します.
progtool-CentOS.tar
解凍してできた下記のファイルを使用します.
progtool-CentOS.ovf

▲VirtualBox起動
「ファイル」「仮想アプライアンスのインポート」とクリックします.
「ソース」の中のフォルダ・アイコンをクリックし,progtool-CentOS.ovfを選択します.
右下の「インポート」ボタンをクリックします.
「Oracle VM VirtualBoxマネージャー」に戻ったら,上段にある「起動」アイコンをクリックすると,CentOSが起動します.
ログイン・プロンプトが出たら,ユーザ名,パスワードを入力します.

user: user
Password: progtooluser

・次のコマンドで実験用サンプル・ソースコードをダウンロードします.

$ wget http://kozos.jp/samples/signal-vm/virtual-inout.c

●実験1
・上記ソースコードの一部を実験のため編集します.

$ vi virtual-inout.c
本誌P92のリスト2を参考にsetsig()の呼び出しを無効化します.

・コンパイル
$ gcc virtual-inout.c -o virtual-inout -Wall

・実行
$ ./virtual-inout
Segmentation fault
$

●実験2
・ソースコードを編集しsetsig()と#ifを有効にして実行します.
本誌P93のリスト1の#if 0 → #if 1に変更
main()関数のsetsig()を有効にする
$ gcc virtual-inout.c -o virtual-inout -Wall
$ ./virtual-inoutvi

●実験3
・#ifを元に戻して実行
$ gcc virtual-inout.c -o virtual-inout -Wall</span
$ ./virtual-inout

●シャットダウン
次のコマンドでCentOSをシャットダウンできます.
$ su
(Password: progtoolroot)
$ shutdown -h now