- 書籍ページ
- [試して理解] Linux のしくみ - 実験と図解で学ぶ OS、仮想マシン、コンテナの基礎知識【増補改訂版】(技術評論社、2022/10)
- サポートページ
- サンプルコードのリポジトリ
- Hardware
- Processors: 2.3 GHz 8-Core Intel Core i9
- Memory: 32 GB 2667 MHz DDR4
- Software
- OS: macOS Ventura 13.4
- VM Software
- VirtualBox 7.0
- Vagrant 2.3.6
- Vagrant Plugins
- vagrant-disksize (0.1.3, global)
- vagrant-vbguest (0.31.0, global)
書籍のサンプルコードを実行する環境は仮想マシン(VM)で構築する。以下のような構成の VM を Vagrant / VirtualBox で構築している(Vagrantfile
を参照):
- Hardware
- 論理コア数: 4
- 割当メモリ: 2048 MB
- Software
- OS: Ubuntu 20.04.3 LTS bento/ubuntu-20.04
Warning
本書籍の著者は、実験環境について「物理マシン上にインストールした Ubuntu 20.04 / x86_64 を前提としている」と述べている。仮想マシン(VM)などの実機以外の環境では、実験プログラムが動かなかったり、予期せぬ性能特性が出たりといった不具合が発生する可能性が高いため推奨していない。
本リポジトリでは、そこを妥協して環境構築を VM で行っている。プログラムの挙動を確認する際、これを念頭に置いて結果を確認する必要がある。
環境構築手順は以下の通り。
以下のコマンドで Vagrant を使用して VM を構築する。ネットワーク環境によるが VM の初期化に 5 ~ 10 分程度かかる:
git clone git@github.com:nukopy/linux-in-practice-2nd.git
cd linux-in-practice-2nd
vagrant up
以下のコマンドで VM 環境に入ることができる:
vagrant status # VM が起動中であることを確認
vagrant ssh
以下のように表示されればログイン成功。
Vagrant では "同期フォルダ" 機能を使用して、ローカル環境のディレクトリを VM 環境にマウントできる。VM 環境に入ったら、まずは以下のコマンドで作業ディレクトリを確認する:
# ----- VM 環境 -----
cd /workspace
ls
# docs install.sh README.md src Vagrantfile
以下のコマンドで書籍を勧めていく上で必要なソフトウェアをインストールする。5 ~ 10 分程度かかる:
cd /workspace
sh install.sh
VM を停止するにはローカル環境で以下のコマンドを実行:
vagrant halt
vagrant status # VM が停止していることを確認
リポジトリルートディレクトリ配下の Vagrantfile
の以下の箇所をいじれば OK:
config.vm.provider "virtualbox" do |vb|
...
# 割り当てるメモリ(MB)
vb.memory = 2048
# CPU の数(論理コア数)
vb.cpus = 4
...
end
Vagrantfile
を更新したら、以下のコマンドを実行して VM を再起動する:
vagrant reload
(このリポジトリの環境構築の)デフォルトでは、VM はヘッドレスモードで起動する。VM の GUI を起動したい場合、Vagrantfile
を以下のように編集する:
config.vm.provider "virtualbox" do |vb|
...
- vb.gui = false
+ vb.gui = true
...
end
Vagrantfile
を更新したら、以下のコマンドを実行して VM を再起動する:
vagrant reload
再起動後、VirtualBox によって以下のようにログインプロンプトが GUI で表示される。ログイン情報はユーザ名 vagrant
、パスワード vagrant
で OK:
ちなみに、VirtualBox のアプリを開くと、以下のように VM のシステム情報を確認できる: