LinuxC入門|Linuxインストールの基礎と仮想環境のしくみ

Linuxを学び始めるときに、まず知っておきたいのが
「Linuxをどこにインストールして、どんな形で使うのか」という基本のお話です。
ここは、実際の現場でもよく登場しますし、LinuC 101試験でも大切なポイントになっています。

このページでは「Linuxインストールの基礎と仮想環境のしくみ」をテーマに、
AlmaLinux 9.6 を例にしながら、Linuxを使う代表的な方法や、仮想化の考え方を順番に見ていきます。
少し専門的な言葉も出てきますが、表やイメージを使って、できるだけ分かりやすく説明していきますので、
肩の力を抜いて読み進めてくださいね。

Linuxを利用する方法はいくつかありますが、よく使われているのは次の3つです。
どれも「Linuxを使う」という点は同じですが、環境の作り方や使いどころが少しずつ違います。

方法どんな方法?よく使われる場面
物理マシン・仮想マシンにインストールPCや仮想マシンにLinuxを直接入れる学習用、社内サーバ
クラウド上の仮想マシンクラウドサービスでLinuxを起動実務、検証環境
コンテナ型仮想環境軽量なLinux環境をすぐに使う開発、テスト

これからLinuxを学ぶ方には、仮想マシンに AlmaLinux 9.6 をインストールする方法がとてもおすすめです。
失敗してもやり直しやすく、「まず触ってみる」にはぴったりの環境です。

仮想マシンを使うときに、ぜひ知っておいてほしいのが
「仮想化ソフトウェアの種類」です。
仮想化には、大きく分けて ホスト型ハイパーバイザー型 の2つがあります。

種類特徴使われ方のイメージ
ホスト型既存のOSの上で仮想化ソフトが動く学習向けで手軽
ハイパーバイザー型ハードウェアの上で直接仮想化を制御サーバやクラウド向け

ホスト型は、WindowsやmacOSの上で仮想化ソフトを起動する方式です。
準備が簡単なので、学習環境としてとても人気があります。

一方、ハイパーバイザー型は、仮想マシンがハードウェアにより近い形で動作します。
その分、処理が効率的で、性能の低下が少ないのが特徴です。
クラウドサービスでは、このハイパーバイザー型の仕組みが裏側で使われています。

仮想環境では、OSを次のように呼び分けます。
名前は少し似ていますが、意味はとてもシンプルです。

用語意味
ホストOS物理マシン上で動いているOS
ゲストOS仮想マシン上で動いているOS

たとえば、PC上で仮想マシンを起動し、その中で AlmaLinux 9.6 を動かしている場合、
PC側のOSがホストOS、仮想マシン内の AlmaLinux がゲストOSになります。

ハイパーバイザー型の仮想化環境が高性能だと言われる理由は、
仮想マシン上のアプリケーションがハードウェアにアクセスするときの
余計な処理が少なくて済むからです。

この仕組みを支えているのが、CPUの仮想化支援機能です。
Intel VT-x や AMD-V と呼ばれるこの機能は、
本来はOSだけが使える特別な領域(Ring 0)を、
仮想マシンが上手に使えるようにするためのものです。

この機能が無効なままだと、

  • 仮想マシンが起動しない。
  • 仮想マシンの動きがとても遅い。

といったことが起こる場合があります。

そこで、AlmaLinux 9.6 上から
CPUが仮想化支援機能に対応しているかを確認してみましょう。
ここでは、CPU情報をまとめて表示できる lscpu コマンドを使います。

[suzuki@AlmaLinux ~]$ lscpu

実行すると、CPUの種類や構成、対応している機能が一覧で表示されます。

lscpu コマンドの書式

要素説明
lscpuCPUの構成や対応機能を表示するコマンド

lscpu コマンドでできること

lscpu を使うと、次のような情報を確認できます。

  • CPUのアーキテクチャ
  • コア数やスレッド数
  • CPUのモデル名
  • 仮想化支援機能の有無

仮想環境を使う前の「事前チェック」として、とても便利なコマンドです。

仮想化支援機能の確認ポイント

表示結果の中では、次の項目に注目してみましょう。

項目見るポイント
Virtualization仮想化支援機能の種類
FlagsCPUが対応している機能一覧

表示例(Intel CPUの場合)

[suzuki@AlmaLinux ~]$ lscpu
アーキテクチャ:                        x86_64
  CPU 操作モード:                      32-bit, 64-bit
  Address sizes:                       39 bits physical, 48 bits virtual
  バイト順序:                          Little Endian
CPU:                                   2
  オンラインになっている CPU のリスト: 0,1
ベンダー ID:                           GenuineIntel
  モデル名:                            12th Gen Intel(R) Core(TM) i7-12700F
    CPU ファミリー:                    6
    モデル:                            151
    コアあたりのスレッド数:            1
    ソケットあたりのコア数:            2
    ソケット数:                        1
    ステッピング:                      2
    BogoMIPS:                          4223.99
    フラグ:                            fpu vme de pse tsc msr pae mce cx8 apic s
                                       ep mtrr pge mca cmov pat pse36 clflush mm
                                       x fxsr sse sse2 ht syscall nx rdtscp lm c
                                       onstant_tsc rep_good nopl xtopology nonst
                                       op_tsc cpuid tsc_known_freq pni pclmulqdq
                                        ssse3 cx16 pcid sse4_1 sse4_2 movbe popc
                                       nt aes rdrand hypervisor lahf_lm abm 3dno
                                       wprefetch ibrs_enhanced fsgsbase bmi1 bmi
                                       2 invpcid rdseed adx clflushopt sha_ni ar
                                       at md_clear flush_l1d arch_capabilities
Virtualization features:               
  ハイパーバイザのベンダー:            KVM
  仮想化タイプ:                        完全仮想化
Caches (sum of all):                   
  L1d:                                 96 KiB (2 instances)
  L1i:                                 64 KiB (2 instances)
  L2:                                  2.5 MiB (2 instances)
  L3:                                  50 MiB (2 instances)
NUMA:                                  
  NUMA ノード数:                       1
  NUMA ノード 0 CPU:                   0,1
Vulnerabilities:                       
  Gather data sampling:                Not affected
  Indirect target selection:           Mitigation; Aligned branch/return thunks
  Itlb multihit:                       Not affected
  L1tf:                                Not affected
  Mds:                                 Not affected
  Meltdown:                            Not affected
  Mmio stale data:                     Not affected
  Reg file data sampling:              Mitigation; Clear Register File
  Retbleed:                            Mitigation; Enhanced IBRS
  Spec rstack overflow:                Not affected
  Spec store bypass:                   Vulnerable
  Spectre v1:                          Mitigation; usercopy/swapgs barriers and 
                                       __user pointer sanitization
  Spectre v2:                          Mitigation; Enhanced / Automatic IBRS; PB
                                       RSB-eIBRS SW sequence; BHI SW loop, KVM S
                                       W loop
  Srbds:                               Not affected
  Tsa:                                 Not affected
  Tsx async abort:                     Not affected
  Vmscape:                             Not affected

Virtualization に VT-x、Flags に vmx が表示されていれば、
Intel CPUの仮想化支援機能に対応していると判断できます。
AMD CPUの場合は、Virtualization に AMD-V、Flags に svm が表示されます。


Intel(R) Virtualization Technology : Enabled
Intel(R) VT-d Feature : Enabled

仮想化の仕組みは、図で見ると一気に理解しやすくなります。
学習用のイラストを作る場合は、次のようなGPTプロンプトがおすすめです。

仮想化の仕組みが「どこにあるのか」を意識して描くと、
ホスト型とハイパーバイザー型の違いがとても分かりやすくなります。

このように、Linuxのインストール方法と仮想環境のしくみを理解しておくと、
学習環境の準備がスムーズになるだけでなく、
クラウドや実務のLinux環境にも自然につながっていきます。