
x86、ARM、RISC-V向けの安全な分離を提供するオープンソースのtype-1ハイパーバイザー兼仮想マシンモニター。Dom0/DomUアーキテクチャ、xenstore、Intel TXTトラステッドブートをサポート。
\ / /___ _ __ _ _ _ __ | | __ | | | | ___
\ // _ \ ' \ | | | | ' / __| / ` | ' | |/ _
/ \ / | | || || | | | _ \ || (| | |) | | __/
//__|| || _,|| ||/__,|.__/||___|
############################################################
Xenは、英国EPSRCが資金提供したXenoServersプロジェクトの一環として、ケンブリッジ大学計算機研究所のシステム研究グループによって開発された仮想マシンモニタ(VMM)です。XenはGNU GPLの下でリリースされた、自由に配布可能なオープンソースソフトウェアです。最初の公開リリース以来、Xenは大規模な開発コミュニティを形成し、xen.org(https://www.xen.org)がその先頭に立っています。
このファイルには、Xenをシステムにインストールするためのクイックスタート手順が記載されています。詳細については、https://www.xen.org/ および https://wiki.xen.org/ を参照してください。
まず、これはあくまでクイックスタートガイドです。より包括的な情報については、INSTALLファイルおよびXen wiki(https://wiki.xenproject.org、特に https://wiki.xenproject.org/wiki/Getting_Started)を参照してください。
次に、Xenのソースリリースをビルドするには、いくつかの前提条件があります。プロジェクトのウェブページを参照するか、お使いのOSディストリビューターが提供するビルド済みパッケージをインストールして、以下のすべてが揃っていることを確認してください: * GNU Make v3.80以降 * Cコンパイラおよびリンカー: - x86の場合: - GCC 5.1以降 - GNU Binutils 2.25以降 または - Clang/LLVM 11以降 - ARMの場合: - GCC 5.1以降 - GNU Binutils 2.25以降 - RISC-V 64ビットの場合: - GCC 12.2以降 - GNU Binutils 2.39以降 * POSIX互換のawk * zlibの開発用インストール(例:zlib-dev) * Python 2.7以降の開発用インストール(例:python-dev) * cursesの開発用インストール(例:libncurses-dev) * uuidの開発用インストール(例:uuid-dev) * json-c 0.15以降の開発用インストール(例:libjson-c-dev) またはyajl(例:libyajl-dev) * libaioの開発用インストール(例:libaio-dev)バージョン0.3.107以降。 * GLib v2.0の開発用インストール(例:libglib2.0-dev) * Pixmanの開発用インストール(例:libpixman-1-dev) * pkg-config * bridge-utilsパッケージ(/sbin/brctl) * iprouteパッケージ(/sbin/ip) * GNU bisonおよびGNU flex * ACPI ASLコンパイラ(iasl)
上記に加えて、いくつかのオプションのビルド前提条件があります。これらを省略すると、関連する機能がコンパイル時に無効になります: * バイナリサーチ対応のgrep(CETサポート付きでXenをビルドする場合) * Ocamlの開発用インストール(例:ocaml-noxおよびocaml-findlib)。代替のocaml xenstoredを含むocamlコンポーネントをビルドするために必要です。 * cmake(vtpmスタブドメインをビルドする場合) * pandoc、transfig、pod2{man,html,text}(各種ドキュメントを別形式にレンダリングするため) * figlet(伝統的なXen起動バナーを生成するため) * systemdデーモンの開発用ファイル * libnl3の開発用インストール(例:libnl-3-200、libnl-3-devなど)。libxlでRemusを使用する際にネットワークバッファリングが必要な場合に必要です。詳細はdocs/README.remusを参照してください。 * rombios用の16ビットx86アセンブラ、ローダー、コンパイラ(dev86 rpmまたはbin86 & bcc debs) * rombios用のliblzmaの開発用インストール * DomUカーネル展開用のlibbz2、liblzma、liblzo2、libzstdの開発用インストール。
次に、ドメイン0で使用する適切なカーネルを入手する必要があります。可能であれば、OSディストリビューターが提供するカーネルを使用すべきです。OSディストリビューターから適切なカーネルが入手できない場合は、使用に適したカーネルの提案について https://wiki.xen.org/wiki/XenDom0Kernels を参照してください。 Dom0カーネルをソースからコンパイルする場合は、https://wiki.xen.org/wiki/XenParavirtOps を参照してください。
[注: 特に断りのない限り、以下のすべての手順はroot権限で実行する必要があります。]
ソースのtarボールファイルをダウンロードして展開します。これは xen-unstable-src.tgz または xen-$version-src.tgz という名前の ファイルになります。 現在のバージョンは https://xenbits.xen.org/ のgitまたはmercurial リポジトリから取得することもできます。
unstableツリーを使用していると仮定すると、これは xen-unstableに展開されます。以降の手順では unstableツリーを例として使用します。unstableの部分は 適宜バージョンに置き換えてください。
xen-unstable(または適切に名前を変更したもの)にcdします。
初回ビルド時、またはビルドツリーを破棄したい場合は、 以下の手順を実行します:
詳細についてはINSTALLファイルのドキュメントを参照してください。
これによりローカルマシン上に作成およびインストールされます。xen バイナリ(xen.gz)、ツール、ドキュメントがビルドされます。
make installのインストール先は、DESTDIRを何らかの値に設定することで 上書きできます。
設定を変更せずに既存のツリーを再ビルドするには:
これによりxen、ツール、ドキュメントがローカルのdist/ ディレクトリにビルドおよびインストールされます。
make installのインストール先は、DISTDIRを何らかの値に設定することで 上書きできます。
make installとmake distの違いは、make installがローカルマシンに 対して適切な処理を行う(例えば適切なバージョンのudevスクリプトを インストールする)のに対し、make distはそれらのスクリプトのすべての バージョンを含むため、distディレクトリを別のマシンにコピーして そのディストリビューションからインストールできる点です。
Xenは、ドメイン間で共有される設定情報とステータス情報を維持するために、 xenstore [0] と呼ばれる設定データベースを使用します。デーモンはxenstoreの 一部として実装され、dom0およびゲストがデータベースにアクセスするための インターフェースとして機能します。2つのxenstoredデーモンがサポートされて います。1つはCで書かれたものでxenstored(時にcxenstoredとも呼ばれる)と いい、もう1つはOcamlで書かれたものでoxenstoredといいます。xenstoreおよび 異なる実装の詳細は、wikiのxenstoreリファレンスガイド [1] および xenstored [2] ページにあります。configureを通じて、システム上でデフォルト として有効にするxenstoreを選択できます:
./configure --with-xenstored=xenstored
./configure --with-xenstored=oxenstored
デフォルトでは、ocaml開発ツールが見つかればoxenstoredが使用されます。 oxenstoredを有効にした場合でもxenstoredはビルドおよびインストールされます。 使用するxenstoredは設定ファイルを通じて変更できます:
/etc/sysconfig/xencommons または /etc/default/xencommons
設定で使用したい優先xenstoredを変更できますが、デーモンを停止することは できないため、変更を有効にするには再起動が必要です。
[0] https://wiki.xen.org/wiki/XenStore [1] https://wiki.xen.org/wiki/XenStoreReference [2] https://wiki.xen.org/wiki/Xenstored
pygrubなどのさまざまなツールには、以下のランタイム依存関係があります:
* Python 2.7以降。
URL: https://www.python.org/
Debian: python
Intelのより安全なコンピューティングのための技術であるIntel(R) Trusted Execution Technology(Intel(R) TXT)は、信頼されたプラットフォームを 構築するための構成要素を提供するプラットフォームレベルの拡張機能を 定義します。詳細については、 https://www.intel.com/technology/security/ を参照してください。
Intel(R) TXT のサポートは、Xen ハイパーバイザ内の最小限のロジックと組み合わせて、Trusted Boot (tboot) モジュールによって提供されます。
Tboot は、Intel(R) TXT を使用して OS カーネル/VMM の測定および検証済みの起動を実行する、オープンソースのカーネル/VMM 前段モジュールです。
Trusted Boot モジュールは http://sourceforge.net/projects/tboot から入手できます。このプロジェクトは http://tboot.sourceforge.net/hg/tboot.hg の mercurial リポジトリでコードをホストしており、ソースの tarball も含まれています。tboot の README にある手順では、tboot を使用して Xen を起動するために grub.conf を変更する方法が説明されています。