승상의 코딩 블로그

가상환경 설정 시 Virtualization(가상화)와 Emulation(에뮬레이션) 차이 본문

Linux (리눅스)

가상환경 설정 시 Virtualization(가상화)와 Emulation(에뮬레이션) 차이

양승상 2024. 10. 20. 00:23

회사 리눅스 PC는 보안상 인터넷 연결이 되지 않는다.

회사 PC 로 리눅스 패키지를 옮길려고 하는데 무엇을 고려해야할까? 

고려해야하는 사항 중 하나는 CPU 의 구조이다. 패키지가 정상 설치될려면 CPU 구조에 맞는 패키지를 가져와야한다. 

 

설치환경과 동일한 시스템을 구축 한 뒤 다운받아 설치된 파일을 옮기는것이 가장 심플하다.

그러나 회사 리눅스 PC의 CPU는 AMD64 구조를 사용하고 나의 개인 맥북은 ARM64 계열을 사용한다.

나처럼 다운로드 환경과 실행 환경이 다른 상황에서는,

다운로드 환경에 "실행 환경의 CPU 를 모방하는 가상환경"을 만들어서 "패키지 매니저를 사용"해서 다운받아 옮겨야한다.

 

* 참고. 패키지를 인터넷에서 그냥 직접 다운 받아가면 안되는가? 

  1. 패키지의 Dependency 가 있을 경우에는 패키지 매니저를 활용해야한다.

  2. 직접 다운 받아서 실제로 정상적으로 되는지 확인해봐야한다.

  3. 리눅스에서는 패키지 매니저를 통한 CPU 플랫폼별로 설치가 어렵다. 


맥에서는 UTM 을 사용해서 가상환경을 설정할 수 있다.

가상환경을 설정을 시작할 때, 2가지 옵션(Virtualize 와 Emulate)이 나온다.

이 두가지 옵션의 의미를 알아야 원하는 CPU 구조 환경을 설정할 수 있다.

가상환경 설정(Virtualize, Emulate)

  • Virtualize (Virtualization : 가상화) 
    가상화는 하나의 PC(물리적 자원)를 여러 가상환경으로 분할하여 서로 다른 시스템처럼 작동하게 할 수 있다. 그러므로, 하드웨어 자원을 효율적으로 사용할 수 있다.
    그래서 빠르지만 native CPU 구조 (즉, 같은 CPU 구조) 에서만 동작한다. (Faster, but can only run the native CPU architecture.)
  • Emulate (Emulation : 에뮬레이션)
    에뮬레이션은 하드웨어를 모방하여 다른 플랫폼(ex. cpu구조) 의 소프트웨어를 실행할 수 있다.
    CPU 구조가 다르면 프로그램을 해석하는 방식의 차이가 있다. 그러므로, 이를 해석할 수 있도록 번역하는 추가적인 작업을 해야한다.
    그래서 느리지만 다른 CPU 구조에서 실행할 수 있다. (Slower, but can run other CPU architecture)

리눅스나 맥의 경우 "uname -m" 을 입력하면 CPU 구조를 간단히 확인할 수 있다.

리눅스에서 CPU 계열 확인

설치하는 환경의 CPU 구조가 어떤지 비교해서 설치를 진행하보자.

 

* 옵션 설정 이후의 설치는 아래 포스팅을 참고하길 바란다.

2022.09.18 - [Linux (리눅스)] - 맥(Mac)을 통한 리눅스(Linux) 명령어 공부2 - 맥에 Ubuntu 가상머신 설치

 

맥(Mac)을 통한 리눅스(Linux) 명령어 공부2 - 맥에 Ubuntu 가상머신 설치

리눅스 명령어를 공부하다보면, 폴더 구조를 깨트린다던가, 지우면 안되는 폴더를 지워버린다던가 등의 여러가지 문제가 일어날 수 있습니다. 그러므로, 맥에 가상머신을 사용하여 공부하는 방

seungsang.tistory.com

 

반응형
Comments