/ARCHIVED-linux-in-practice

「試して理解 Linux のしくみ(技術評論社,2018)」の実験用リポジトリ

Primary LanguageShell

「試して理解 Linux のしくみ」実験用リポジトリ

各種リンク

実行環境

Vagrant で構築した Ubuntu の仮想環境上でサンプルコードを実行した。

  • OS
    • Host: macOS Big Sur 11.6
    • Guest: Ubuntu 20.04.3 LTS
  • Software for VM
    • VirtualBox v6.1.32
    • Vagrant 2.2.19
    • Vagrant plugins
      • vagrant-vbguest 0.3.0
      • vagrant-disksize 0.1.3
        • ディスク容量を設定するためのプラグイン

書籍の「はじめに」では、挙動が変わるために仮想マシン(VM)上ではなく実機上で Ubuntu を動作させることを推奨しているが、Ubuntu 用の実機がないので VM で妥協した。また、検証環境としては、Docker コンテナよりは VM が良いと判断した。

環境構築

  • VM の起動
    • vagrant up したディレクトリが VM の /vagrant 配下にマウントされる。
cd linux-in-practice/
vagrant init ubuntu/focal64
vagrant up
  • VM 環境に入り、マウントの確認。その後、実験に必要なパッケージのインストール。
# ----- ローカル環境 -----
vagrant status  # VM が起動中であることを認確
vagrant ssh # VM の中に入る

# ----- VM 環境 -----
cd /vagrant
ls
install.sh  Makefile  note  README.md  sample-code  src  Vagrantfile
# マウントされてることを確認

sh install.sh
  • VM の停止
vagrant halt

VM のスペック

Vagrantfile でマシンスペックの設定が行える。ディスクサイズのように一部プラグインが必要な部分もある。

全体

  • CPU
    • Intel(R) i9-9880H 2.30GHz
    • 物理プロセッサ数:1(ハイパースレッディング on)
    • コア数:2
  • RAM
    • 2 GiB
  • DISK
    • 100 GiB

CPU、メモリの確認

サーバ監視用の htop コマンドで簡単にサーバの CPU のコア数とメモリ容量が確認できる。

# VM 環境
$ htop
  • htop 実行時の様子

CPU の確認:物理プロセッサ数、コア数

CPU のハイパースレッディングが on の場合、物理プロセッサ数と OS が認識するプロセッサ数(コア数)が合わないので注意。

# VM 環境
# ハードウェアの確認
$ sudo lshw | grep -i cpu
     *-cpu
          product: Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
          bus info: cpu@0
          capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp x86-64 constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase avx2 invpcid rdseed clflushopt md_clear flush_l1d arch_capabilities
# 物理プロセッサ数:id が 1 種類のため 1 個
$ cat /proc/cpuinfo | grep "physical id"
physical id     : 0
physical id     : 0
# 仮想プロセッサ数:OS 側が何個の CPU を認識しているか確認する:2 つの CPU を認識している
$ cat /proc/cpuinfo | grep processor
processor       : 0
processor       : 1
# コア数:仮想プロセッサ数の結果と一致するはず
vagrant@vagrant:~$ cat /proc/cpuinfo | grep "cpu cores"
cpu cores       : 2
cpu cores       : 2