
x86, ARM, RISC-V를 위한 안전한 격리를 제공하는 오픈소스 타입-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 위키(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 권한으로 수행해야 합니다.]
소스 tarball 파일을 다운로드하고 압축을 해제합니다. 이 파일은 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), 도구 및 문서를 빌드합니다.
DESTDIR을 특정 값으로 설정하여 make install의 대상을 재정의할 수 있습니다.
config를 수정하지 않고 기존 트리를 다시 빌드하려면:
이 명령은 xen, 도구 및 문서를 로컬 dist/ 디렉터리에 빌드하고 설치합니다.
DISTDIR을 특정 값으로 설정하여 make install의 대상을 재정의할 수 있습니다.
make install과 make dist의 차이는 make install은 로컬 머신에 맞는 작업(예: 적절한 버전의 udev 스크립트 설치)을 수행하지만, make dist는 해당 스크립트의 모든 버전을 포함하므로 dist 디렉터리를 다른 머신에 복사하여 해당 배포판에서 설치할 수 있다는 점입니다.
Xen은 도메인 간에 공유되는 구성 및 상태 정보를 유지하기 위해 xenstore [0]라는 구성 데이터베이스를 사용합니다. dom0 및 게스트가 데이터베이스에 접근하기 위한 인터페이스 역할을 하도록 xenstore의 일부로 데몬이 구현되어 있습니다. 두 가지 xenstored 데몬이 지원되는데, 하나는 C로 작성된 것으로 xenstored(때때로 cxenstored라고도 함)라고 하며, 다른 하나는 Ocaml로 작성된 것으로 oxenstored라고 합니다. xenstore 및 다양한 구현에 대한 자세한 내용은 위키의 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를 수정하는 방법을 설명합니다.