사용자 모드 Linux

User-mode Linux
사용자 모드 Linux
기입처C
유형가상화
면허증.GNU 일반 공중 라이선스
웹 사이트user-mode-linux.sourceforge를 지정합니다.그물

UML(User-Mode Linux)은 Linux 커널의 자체 시스템 호출 인터페이스에 대한 아키텍처 포트이며, 이를 통해 여러 가상 Linux 커널 기반 운영 체제(게스트)를 일반 Linux 시스템(호스트) 내에서 애플리케이션으로 실행할 수 있습니다.um 아키텍처용으로 컴파일된 Linux 커널은 호스트 환경의 구성이나 안정성에 영향을 주지 않고 완전히 사용자 공간에서 다른 Linux 커널에서 프로세스로 부팅할 수 있습니다.

각 게스트는 사용자 공간에서 프로세스로 실행되는 일반 애플리케이션일 뿐이므로 이 접근 방식은 사용자에게 단일 하드웨어에서 여러 가상 Linux 머신을 실행하는 방법을 제공하여 일반적으로 호스트 환경의 구성이나 안정성에 영향을 주지 않고 몇 가지 격리 기능을 제공합니다.

적용들

UML을 [1]사용하면 많은 것이 가능합니다.UML 환경에서 네트워크 서비스를 실행할 수 있으며 UML 환경이 [2][3][4][5][6]실행되는 메인 Linux 시스템에서 완전히 격리된 상태로 유지됩니다.관리자는 UML을 사용하여 허니팟[7]셋업할 수 있습니다.허니팟을 셋업하면 컴퓨터 또는 네트워크의 보안을 테스트할 수 있습니다.UML은 호스트시스템에 악영향을 주지 않고 새로운 소프트웨어를 테스트 및 디버깅할 수 있습니다.UML은 교육 및 연구에도 사용할 수 있으며, 높은 안전성을 갖춘 현실적인 Linux 네트워크 환경을 제공합니다.

UML 환경에서는 호스트와 게스트 커널 버전이 일치할 필요가 없으므로 훨씬 오래된 커널을 실행하는 시스템에서 사용자 모드에서 Linux의 "출혈 에지" 버전을 테스트할 수 있습니다.또한 UML을 사용하면 하나의 머신에서 커널 디버깅을 실행할 수 있습니다.다른 커널 디버깅툴(kgdb 등)에서는 늘모뎀 케이블로 연결된2대의 머신이 필요합니다.

일부호스팅 프로바이더는 UML 기반의 가상 서버실제 전용 서버보다 저렴한 가격에 제공합니다.각 고객은 자신의 시스템으로 보이는 것에 대해 루트 액세스 권한을 가지지만, 실제로는 하나의 물리 컴퓨터가 여러 사람 간에 공유됩니다.

libguestfs는 QEMU 또는 KVM을 사용하는 대신 버전 1.24[8] 이후 UML 백엔드를 지원했습니다.

Linux 커널로의 통합

UML 게스트애플리케이션(Linux 바이너리 ELF)은 원래 2.2.x 이상의 커널버전을 가진 호스트는 스레드모드(SKAS3 이외)에서 쉽게 지원되었습니다.

Linux 2.6.0부터는 메인 커널 소스 트리에 통합되어 있습니다.호스트 커널 패치가 필요 없는 개별 커널 주소 공간(SKAS)을 실행하는 방법이 구현되었습니다.이를 통해 UML에서 실행되는 프로세스가 호스트의 관점에서 동일한 주소 공간을 공유하는 오래된 추적 스레드 접근 방식보다 성능과 보안이 향상됩니다. 따라서 UML 내의 메모리는 메모리 관리 유닛에 의해 보호되지 않습니다.SKAS를 사용하는 현재의 UML과 달리 비 SKAS 호스트에서 실행되는 UML 내의 버그 소프트웨어 또는 악성 소프트웨어는 다른 UML 프로세스 또는 UML 커널 [citation needed]메모리의 메모리 공간을 읽을 수 있습니다.

다른 테크놀로지와의 비교

일반적으로 사용자[by whom?] 모드의 Linux는 Xen이나 [citation needed]OpenVZ 등의 경쟁 테크놀로지보다 퍼포먼스가 낮은 것으로 알려져 있습니다.향후 UML에 x86 가상화 지원을 추가하는 작업을 통해 이 단점을 줄일 수 있습니다.

Xen(경쟁 기술)의 강점으로 자주 언급되는 것은 스레드 로컬 스토리지(TLS) 지원입니다.이 기능은 최신 UML 커널에서도 지원됩니다.Xen은 머신 전체의 가상화에 주력하고 있기 때문에 Xen 머신에서 실행되는 모든 시스템은 가상 머신입니다.UML에서는 호스트 시스템이 어떤 방식으로도 가상화되지 않으며 게스트 시스템만 실제 가상 시스템입니다.이것에 의해, UML 게스트가 호스트 파일 시스템 및 하드웨어에 직접 액세스 할 수 있습니다.여기서 호스트 디렉토리를 매핑하는 것이 일반적입니다(예:/uml/root → /) 입니다.

지원되는 플랫폼

UML은 원래 x86 명령 세트용으로 설계되었지만 IA-64PowerPC [citation needed]등의 다른 명령 세트에도 이식되었습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Landley, Rob (2009-12-16). "Rob's quick and dirty UML howto". Retrieved 2019-08-29.
  2. ^ "Virtual Network User-Mode-Linux". 2012-02-13. Retrieved 2019-08-29.
  3. ^ "Netkit: Features". 2009-12-03. Retrieved 2019-08-29.
  4. ^ Jean-Vincent Loddo & Luca Saiu. "Marionnet: a virtual network laboratory". Retrieved 2019-08-29.{{cite web}}: CS1 maint: 작성자 파라미터 사용(링크)
  5. ^ "Cloonix Documentation: v03-04". 2019-06-01. Retrieved 2019-08-29.
  6. ^ "Welcome to GINI! A Toolkit for Constructing User-Level Micro Internets". McGill University. 2009-09-28. Retrieved 2019-08-29.
  7. ^ "UML as a honeypot". 2007-07-13. Retrieved 2019-08-29.
  8. ^ Richard WM Jones (August 11, 2013). "Experimental User-Mode Linux backend for libguestfs". Retrieved 2019-08-29.

외부 링크